TechnitiumSoftware/DnsServer · error · DnsWebServiceException
No such user exists: {actingUsername}
Error message
No such user exists: {actingUsername} What it means
DnsWebServiceException thrown by GetSessionUser when the session is a ClusterApiToken and the optional 'actingUser' query/form parameter names a user that _authManager.GetUser cannot find. Cluster nodes proxy calls with an acting user; if that user does not exist on this node, the call cannot be attributed and is rejected.
Source
Thrown at DnsServerCore/DnsWebService.cs:2623
context.Items["session"] = session;
return true;
}
private User GetSessionUser(HttpContext context, bool standardOnly = false)
{
UserSession session = context.GetCurrentSession();
if ((session.Type == UserSessionType.ClusterApiToken) && _clusterManager.ClusterInitialized)
{
//proxy call from cluster node
string actingUsername = context.Request.GetQueryOrForm("actingUser", null);
if (actingUsername is null)
return session.User;
User actingUser = _authManager.GetUser(actingUsername);
if (actingUser is null)
throw new DnsWebServiceException("No such user exists: " + actingUsername);
return actingUser;
}
else
{
if (standardOnly && (session.Type != UserSessionType.Standard))
throw new DnsWebServiceException("Access was denied.");
return session.User;
}
}
#endregion
#region tls
private void StartTlsCertificateUpdateTimer()
{View on GitHub (pinned to d0484b6c1e)
Solutions
- Ensure the acting user exists on every cluster node (create/replicate the user).
- Omit the actingUser parameter to act as the token's own user when appropriate.
- Verify the username spelling/case in the request.
- Re-sync cluster user data so all nodes agree on the user set.
Example fix
null
Defensive patterns
Strategy: validation
Validate before calling
// Before sending ?actingUser=, confirm the user exists on this node
if (!string.IsNullOrEmpty(actingUser) && _authManager.GetUser(actingUser) is null)
throw new ArgumentException($"Unknown acting user: {actingUser}"); Type guard
null
Try / catch
catch (DnsWebServiceException ex) when (ex.Message.StartsWith("No such user exists"))
{
// create/replicate the user, or omit actingUser and retry
} Prevention
- Keep the user set consistent across all cluster nodes.
- Omit actingUser when the token's own user is acceptable.
- Re-sync cluster user data after user create/delete operations.
When it happens
Trigger: A cluster API-token call includes ?actingUser=<name> where <name> is not a user on the receiving node. Happens when users were created on one node but not replicated/created on another, or the username is mistyped.
Common situations: User exists on the primary but not on a secondary (or vice versa); user was deleted while a cluster call was in flight; typo in actingUser; partial cluster sync; cross-cluster token misuse.
Related errors
- Invalid token or session expired.
- No such node exists in the Cluster by name: {nodeName}
- AddressFamily not supported.
- Failed to read 'Zones' permissions: auth.config file is prob
- Failed to find 'Administrators' group: auth.config file is p
AI-assisted analysis of TechnitiumSoftware/DnsServer@d0484b6c1e (2026-08-13).
Data as JSON: /api/errors/c74558e44666882d.
Report an issue: GitHub.