{"record":{"id":"09a42aa1730ff745","repo":"infiniflow/ragflow","slug":"400-09a42a","errorCode":"400","errorMessage":"Empty Bearer token","messagePattern":"Empty Bearer token","errorType":"validation","errorClass":"Exception","httpStatus":400,"severity":"error","filePath":"api/apps/restful_apis/agent_api.py","lineNumber":2049,"sourceCode":"\n        auth = request.authorization\n        if not auth or auth.username != username or auth.password != password:\n            raise Exception(\"Invalid Basic Auth credentials\")\n\n    def _validate_jwt_auth(security_cfg):\n        \"\"\"Validate JWT token in Authorization header.\"\"\"\n        jwt_cfg = security_cfg.get(\"jwt\", {})\n        secret = jwt_cfg.get(\"secret\")\n        if not secret:\n            raise Exception(\"JWT secret not configured\")\n\n        auth_header = request.headers.get(\"Authorization\", \"\")\n        if not auth_header.startswith(\"Bearer \"):\n            raise Exception(\"Missing Bearer token\")\n\n        token = auth_header[len(\"Bearer \") :].strip()\n        if not token:\n            raise Exception(\"Empty Bearer token\")\n\n        alg = (jwt_cfg.get(\"algorithm\") or \"HS256\").upper()\n\n        decode_kwargs = {\n            \"key\": secret,\n            \"algorithms\": [alg],\n        }\n        options = {}\n        if jwt_cfg.get(\"audience\"):\n            decode_kwargs[\"audience\"] = jwt_cfg[\"audience\"]\n            options[\"verify_aud\"] = True\n        else:\n            options[\"verify_aud\"] = False\n\n        if jwt_cfg.get(\"issuer\"):\n            decode_kwargs[\"issuer\"] = jwt_cfg[\"issuer\"]\n            options[\"verify_iss\"] = True\n        else:","sourceCodeStart":2031,"sourceCodeEnd":2067,"githubUrl":"https://github.com/infiniflow/ragflow/blob/554fb1133ac3861732235ad9c377eb5e0a770665/api/apps/restful_apis/agent_api.py#L2031-L2067","documentation":"Error \"Empty Bearer token\" thrown in infiniflow/ragflow.","triggerScenarios":"Thrown at api/apps/restful_apis/agent_api.py:2049 when the library encounters an invalid state.","commonSituations":"The Authorization header contains 'Bearer' with no token, often from an unset environment variable; ensuring the token is populated prevents this error.","solutions":["Provide a non-empty token after the 'Bearer ' prefix."],"exampleFix":"headers = {'Authorization': f'Bearer {token.strip()}'}","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"554fb1133ac3861732235ad9c377eb5e0a770665","analyzedAt":"2026-08-15T09:20:16.380Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}