The issue is that tikz-uml uses the (mandatory) argument of \umlactor not just for the output to print under the actor, but also as an internal TikZ node name. This choice is made for many other \uml... commands as well, and it leads to various issues because TikZ node nodes are supposed to be simple and not contain special characters, and definitely not commands.
This can be demonstrated with a simpler MWE. The following has a \umlactor with \textbf in the argument, that also fails:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{tikz-uml}
\begin{document}
\begin{tikzpicture}
\umlactor{\textbf{sometool}}
\begin{umlsystem}{system name}
\end{umlsystem}
\end{tikzpicture}
\end{document}
As a quick workaround you can patch \umlactor as cfr suggested. The idea here is to define a new command with three arguments, the first optional argument for the node options, the second mandatory argument for a (clean) node name, and the third mandatory argument for the full printable contents. This can be a wrapper around a slightly modified \umlactor command with two arguments, where the modification consists of changing the name of the command to be used for printing the text contents of the actor into the command set by the three-argument version.
The modification of \umlactor (actually of a copy made with \NewCommandCopy, so the original can also still be used) can be done with the xpatch package, which provides the command \xpatchcmd with five arguments, i.e., the command to be patched, the text to be found, the text to be replaced, and what to do when the patch succeeds or fails, respectively.
In the original tikz-uml code the printable contents is used in the following TikZ node:
\node[text=\tikzumlActorTextColor, font=\tikzumlDefaultFont, below=\tikzumlActorScale*\tikzumlActorBelow] at (\tikzumlActorNodeName) {\tikzumlActorName};%
From this line the relevant part is:
at (\tikzumlActorNodeName) {\tikzumlActorName}
which can be changed with xpatch into:
at (\tikzumlActorNodeName) {\tikzumlFullActorName}
Now the three-argument version of \umlactor needs to set \tikzumlFullActorName from its third argument and then call the modified two-argument version with the first two arguments, i.e., the TikZ options and the clean name.
MWE:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{xpatch}
\usepackage{tikz-uml}
\NewCommandCopy\umlactortwo\umlactor
\xpatchcmd{\umlactortwo}{at (\tikzumlActorNodeName) {\tikzumlActorName}}{at (\tikzumlActorNodeName) {\tikzumlFullActorName}}{\typeout{patch ok}}{\typeout{patch failed}}
\newcommand{\umlactorclean}[3][]{%
\def\tikzumlFullActorName{#3}% store full name in command to be called from modified \umlactor
\umlactortwo[#1]{#2}% call modified command with the clean name
}
\begin{document}
\begin{tikzpicture}
\umlactorclean{sometool}{\textbf{sometool}}
\begin{umlsystem}{system name}
\end{umlsystem}
\end{tikzpicture}
\end{document}
Result:

The file defis.bib is as you would expectplease supply a suitable file in a code block so people can see the issue and test answers.tikz-uml.sty. it is not in tex live. nor can I find it on ctan.\umlactorin order to make this work. I'd recommend just typing the name in\umlactor. unless you need to do the same thing many times, I doubt it is worth the trouble making it work.defis.bib.