{"record":{"id":"c1354d43ae690387","repo":"infiniflow/ragflow","slug":"invalid-base64-encoding-str-e-c1354d","errorCode":null,"errorMessage":"Invalid base64 encoding: {str(e)}","messagePattern":"Invalid base64 encoding: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"agent/tools/code_exec.py","lineNumber":222,"sourceCode":"\nclass Language(StrEnum):\n    PYTHON = \"python\"\n    NODEJS = \"nodejs\"\n\n\nclass CodeExecutionRequest(BaseModel):\n    code_b64: str = Field(..., description=\"Base64 encoded code string\")\n    language: str = Field(default=Language.PYTHON.value, description=\"Programming language\")\n    arguments: Optional[dict] = Field(default={}, description=\"Arguments\")\n\n    @field_validator(\"code_b64\")\n    @classmethod\n    def validate_base64(cls, v: str) -> str:\n        try:\n            base64.b64decode(v, validate=True)\n            return v\n        except Exception as e:\n            raise ValueError(f\"Invalid base64 encoding: {str(e)}\")\n\n    @field_validator(\"language\", mode=\"before\")\n    @classmethod\n    def normalize_language(cls, v) -> str:\n        if isinstance(v, str):\n            low = v.lower()\n            if low in (\"python\", \"python3\"):\n                return \"python\"\n            elif low in (\"javascript\", \"nodejs\"):\n                return \"nodejs\"\n        raise ValueError(f\"Unsupported language: {v}\")\n\n\nclass CodeExecParam(ToolParamBase):\n    \"\"\"\n    Define the code sandbox component parameters.\n    \"\"\"\n","sourceCodeStart":204,"sourceCodeEnd":240,"githubUrl":"https://github.com/infiniflow/ragflow/blob/554fb1133ac3861732235ad9c377eb5e0a770665/agent/tools/code_exec.py#L204-L240","documentation":"Error \"Invalid base64 encoding: {str(e)}\" thrown in infiniflow/ragflow.","triggerScenarios":"Thrown at agent/tools/code_exec.py:222 when the library encounters an invalid state.","commonSituations":"A base64 payload passed to CodeExec is truncated, URL-encoded, or contains invalid characters; validating the encoding before decode prevents this error.","solutions":["Ensure the attachment content is valid base64 before decoding.","Strip whitespace and use base64.b64decode with validate=True to catch bad input early."],"exampleFix":"import base64\ndata = base64.b64decode(payload, validate=True)","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"}