{"record":{"id":"bd12d9a9eaad135f","repo":"chroma-core/chroma","slug":"invalid-token-must-contain-only-ascii-letters-di","errorCode":null,"errorMessage":"Invalid token. Must contain only ASCII letters, digits, and punctuation.","messagePattern":"Invalid token\\. Must contain only ASCII letters, digits, and punctuation\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"chromadb/auth/token_authn/__init__.py","lineNumber":59,"sourceCode":"    \"\"\"\n    Accceptable token transport headers.\n    \"\"\"\n\n    # I don't love having this enum here -- it's weird to have an enum\n    # for just two values and it's weird to have users pass X_CHROMA_TOKEN\n    # to configure \"x-chroma-token\". But I also like having a single source\n    # of truth, so 🤷🏻‍♂️\n    AUTHORIZATION = \"Authorization\"\n    X_CHROMA_TOKEN = \"X-Chroma-Token\"\n\n\nvalid_token_chars = set(string.digits + string.ascii_letters + string.punctuation)\n\n\ndef _check_token(token: str) -> None:\n    token_str = str(token)\n    if not all(c in valid_token_chars for c in token_str):\n        raise ValueError(\n            \"Invalid token. Must contain only ASCII letters, digits, and punctuation.\"\n        )\n\n\nallowed_token_headers = [\n    TokenTransportHeader.AUTHORIZATION.value,\n    TokenTransportHeader.X_CHROMA_TOKEN.value,\n]\n\n\ndef _check_allowed_token_headers(token_header: str) -> None:\n    if token_header not in allowed_token_headers:\n        raise ValueError(\n            f\"Invalid token transport header: {token_header}. \"\n            f\"Must be one of {allowed_token_headers}\"\n        )\n\n","sourceCodeStart":41,"sourceCodeEnd":77,"githubUrl":"https://github.com/chroma-core/chroma/blob/aecdd12c8a891610db8653630b066b32ceb678b5/chromadb/auth/token_authn/__init__.py#L41-L77","documentation":"Error \"Invalid token. Must contain only ASCII letters, digits, and punctuation.\" thrown in chroma-core/chroma.","triggerScenarios":"Thrown at chromadb/auth/token_authn/__init__.py:59 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"aecdd12c8a891610db8653630b066b32ceb678b5","analyzedAt":"2026-08-16T21:53:27.228Z","schemaVersion":2},"datasetVersion":"2026-08-16T23:17:17.608Z"}