Comfy-Org/ComfyUI · error · ValueError
username not provided
Error message
username not provided
What it means
UserManager.add_user strips the supplied name and requires a non-empty result; whitespace-only or empty names raise ValueError('username not provided') before any id is generated or users.json is written. This is pure input validation on the user-creation API.
Source
Thrown at app/user_manager.py:108
if "%" in file:
file = parse.unquote(file)
# prevent leaving /{type}/{user}
path = os.path.abspath(os.path.join(user_root, file))
if os.path.commonpath((user_root, path)) != user_root:
return None
parent = os.path.split(path)[0]
if create_dir and not os.path.exists(parent):
os.makedirs(parent, exist_ok=True)
return path
def add_user(self, name):
name = name.strip()
if not name:
raise ValueError("username not provided")
if name.startswith(folder_paths.SYSTEM_USER_PREFIX):
raise ValueError("System User prefix not allowed")
user_id = re.sub("[^a-zA-Z0-9-_]+", '-', name)
if user_id.startswith(folder_paths.SYSTEM_USER_PREFIX):
raise ValueError("System User prefix not allowed")
user_id = user_id + "_" + str(uuid.uuid4())
self.users[user_id] = name
with open(self.get_users_file(), "w") as f:
json.dump(self.users, f)
return user_id
def add_routes(self, routes):
self.settings.add_routes(routes)
@routes.get("/users")View on GitHub (pinned to 1c6d8d45b3)
Solutions
- Provide a non-blank display name, e.g. name="Alice".
- Validate client-side before calling the API: if not name or not name.strip(): show an error.
- Check the request payload key matches what the endpoint expects (name).
Example fix
# before
user_manager.add_user(" ")
# after
user_manager.add_user("Alice") Defensive patterns
Strategy: validation
Validate before calling
name = name.strip() if isinstance(name, str) else ""
if not name:
raise ValueError("username required")
user_manager.add_user(name) Type guard
def is_valid_username(name) -> bool:
return isinstance(name, str) and len(name.strip()) > 0 Try / catch
try:
user_manager.add_user(name)
except ValueError as e:
return web.Response(status=400, text=str(e)) Prevention
- Validate non-blank input in the UI form before submit.
- Check the payload key name matches the endpoint's expected field.
When it happens
Trigger: POSTing a new user with name "" or " "; a UI form submitted without entering a username; programmatic user creation passing an unset variable.
Common situations: Frontend form validation missing/bypassed; automation scripts iterating over an empty name field; JSON payload using the wrong key so name arrives as null/blank.
Related errors
- Unknown user:
- System User prefix not allowed
- job id must be a string, got {type(value).__name__}
- job id must be a UUID in canonical lowercase hyphenated form
- SeedVR2TemporalChunk: temporal_overlap must be >= 0; got {te
AI-assisted analysis of Comfy-Org/ComfyUI@1c6d8d45b3 (2026-08-14).
Data as JSON: /api/errors/f11240a2c7d109b6.
Report an issue: GitHub.