{"record":{"id":"89fdd425fac91a47","repo":"bytedance/deer-flow","slug":"no-files-provided","errorCode":null,"errorMessage":"No files provided","messagePattern":"No files provided","errorType":"http","errorClass":"HTTPException","httpStatus":400,"severity":"error","filePath":"backend/app/gateway/routers/uploads.py","lineNumber":310,"sourceCode":"        raw = _get_uploads_config_value(app_config, \"auto_convert_documents\", False)\n        if isinstance(raw, str):\n            return raw.strip().lower() in {\"1\", \"true\", \"yes\", \"on\"}\n        return bool(raw)\n    except Exception:\n        return False\n\n\n@router.post(\"\", response_model=UploadResponse)\n@require_permission(\"threads\", \"write\", owner_check=True, require_existing=False)\nasync def upload_files(\n    thread_id: ThreadId,\n    request: Request,\n    files: list[UploadFile] = File(...),\n    config: AppConfig = Depends(get_config),\n) -> UploadResponse:\n    \"\"\"Upload multiple files to a thread's uploads directory.\"\"\"\n    if not files:\n        raise HTTPException(status_code=400, detail=\"No files provided\")\n\n    limits = _get_upload_limits(config)\n    if len(files) > limits.max_files:\n        raise HTTPException(status_code=413, detail=f\"Too many files: maximum is {limits.max_files}\")\n\n    try:\n        effective_user_id = get_effective_user_id()\n        uploads_dir = await run_file_io(ensure_uploads_dir, thread_id, user_id=effective_user_id)\n    except ValueError as e:\n        raise HTTPException(status_code=400, detail=str(e))\n    sandbox_uploads = uploads_dir\n    uploaded_files = []\n    written_paths = []\n    sandbox_sync_targets = []\n    skipped_files = []\n    total_size = 0\n    # Track filenames within this request so duplicate form parts do not\n    # silently truncate each other. Existing uploads keep the historical","sourceCodeStart":292,"sourceCodeEnd":328,"githubUrl":"https://github.com/bytedance/deer-flow/blob/1dd6ba1acb03700589994b0366c5d1c7d05e2eff/backend/app/gateway/routers/uploads.py#L292-L328","documentation":"Error \"No files provided\" thrown in bytedance/deer-flow.","triggerScenarios":"Thrown at backend/app/gateway/routers/uploads.py:310 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Attach at least one file to the upload request.","Check the client form-data construction includes the files field."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"1dd6ba1acb03700589994b0366c5d1c7d05e2eff","analyzedAt":"2026-08-14T21:20:34.804Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}