invoke-ai/InvokeAI · error · ValueError

{args} is not a value argument list for syslog logging

Error message

{args} is not a value argument list for syslog logging

What it means

InvokeAI's get_loggers parses user-supplied syslog handler arguments (e.g. 'syslog=host,facility=...', 'dev_log=/dev/log') via _parse_syslog_args, mapping names through _FACILITY_MAP/_SOCK_MAP. If any exception occurs while interpreting the argument list — unknown facility/socktype, bad indices, malformed key=value pairs — the generic except re-raises it as this ValueError. It signals the syslog logging config string was not valid.

Source

Thrown at invokeai/backend/util/logging.py:406

            raise ValueError("syslog is not available on this system")
        if not args:
            args = "/dev/log" if Path("/dev/log").exists() else "address:localhost:514"
        syslog_args: Dict[str, Any] = {}
        try:
            for a in args.split(","):
                arg_name, *arg_value = a.split(":", 2)
                if arg_name == "address":
                    host, *port_list = arg_value
                    port = 514 if not port_list else int(port_list[0])
                    syslog_args["address"] = (host, port)
                elif arg_name == "facility":
                    syslog_args["facility"] = _FACILITY_MAP[arg_value[0]]
                elif arg_name == "socktype":
                    syslog_args["socktype"] = _SOCK_MAP[arg_value[0]]
                else:
                    syslog_args["address"] = arg_name
        except Exception:
            raise ValueError(f"{args} is not a value argument list for syslog logging")
        return logging.handlers.SysLogHandler(**syslog_args)

    @staticmethod
    def _parse_file_args(args: Optional[str] = None) -> logging.Handler:  # noqa D102
        if not args:
            raise ValueError("please provide filename for file logging using format 'file=/path/to/logfile.txt'")
        return logging.FileHandler(args)

    @staticmethod
    def _parse_http_args(args: Optional[str] = None) -> logging.Handler:  # noqa D102
        if not args:
            raise ValueError("please provide destination for http logging using format 'http=url'")
        arg_list = args.split(",")
        url = urllib.parse.urlparse(arg_list.pop(0))
        if url.scheme != "http":
            raise ValueError(f"the http logging module can only log to HTTP URLs, but {url.scheme} was specified")
        host = url.hostname
        path = url.path

View on GitHub (pinned to 0b6a024f2f)

Solutions

  1. Check the syslog argument string matches the expected format: name=value pairs for facility and socktype, plus an address arg.
  2. Verify facility and socktype values are keys in _FACILITY_MAP and _SOCK_MAP in invokeai/backend/util/logging.py.
  3. Provide a value after each key (e.g. facility=local7,socktype=udp); missing values cause the exception.
  4. Temporarily remove the syslog arg to confirm the rest of the logging config works, then re-add pieces incrementally.

Example fix

// before
logging="syslog=host=facility=audit"
// after
logging="syslog=/dev/log,facility=daemon,socktype=udp"
Defensive patterns

Strategy: validation

Validate before calling

def validate_syslog_args(args: str) -> bool:
    parts = [p for p in args.split(",") if p]
    return all(("=" in p) or p for p in parts) and len(parts) > 0

Try / catch

try:
    logger = get_loggers(app, log_level_name, format="syslog=...,facility=daemon,socktype=udp")
except ValueError as e:
    if "is not a value argument list for syslog" in str(e):
        logger = get_loggers(app, log_level_name, format="console")  # fall back

Prevention

When it happens

Trigger: Calling get_loggers (or InvokeAIAppConfig logging config) with a syslog argument list that references a facility or socktype name not present in _FACILITY_MAP/_SOCK_MAP, uses wrong positional value format, or otherwise causes any exception during parsing (e.g. missing value after 'facility=' or 'socktype=').

Common situations: Typos in facility names ('local1' vs 'local1' style mismatches, 'daemon' misspelled), using socktype values like 'tcp'/'udp' in an unexpected format, passing syslog args without a value list, copying an example from another logging library.

Related errors


AI-assisted analysis of invoke-ai/InvokeAI@0b6a024f2f (2026-08-29). Data as JSON: /api/errors/e838a04758e9cd60. Report an issue: GitHub.