{"record":{"id":"67de5ca93f5785f2","repo":"AlistGo/alist","slug":"wukong-commit-upload-inner-failed-uri-status-d","errorCode":null,"errorMessage":"wukong commit upload inner failed: uri_status=%d","messagePattern":"wukong commit upload inner failed: uri_status=(.+?)","errorType":"error_code","errorClass":null,"httpStatus":null,"severity":"error","filePath":"drivers/wukong/driver.go","lineNumber":477,"sourceCode":"\t\t\"Action\":    \"CommitUploadInner\",\n\t\t\"Version\":   \"2020-11-19\",\n\t\t\"SpaceName\": spaceName,\n\t}\n\tbody, _ := json.Marshal(map[string]any{\n\t\t\"SessionKey\": sessionKey,\n\t\t\"Functions\":  []any{},\n\t})\n\tvar resp commitUploadInnerResp\n\tif err := d.vodRequest(ctx, http.MethodPost, q, body, auth, &resp); err != nil {\n\t\treturn \"\", err\n\t}\n\tif resp.ResponseMetadata.Error.Code != \"\" {\n\t\treturn \"\", fmt.Errorf(\"wukong commit upload inner failed: %s\", resp.ResponseMetadata.Error.Message)\n\t}\n\tif len(resp.Result.Results) > 0 {\n\t\tstatus := resp.Result.Results[0].URIStatus\n\t\tif status != 0 && status != minUploadSubmitSuccess {\n\t\t\treturn \"\", fmt.Errorf(\"wukong commit upload inner failed: uri_status=%d\", status)\n\t\t}\n\t}\n\treturn extractVideoVid(&resp), nil\n}\n\nfunc (d *Wukong) uploadSubmit(ctx context.Context, fatherID, fileName, ext string, fileType int, size int64, md5Hex, storeURI, videoVid string) error {\n\tvar resp uploadSubmitResp\n\tbody := map[string]any{\n\t\t\"base_info\": map[string]any{\n\t\t\t\"father_id\":    asIDValue(fatherID),\n\t\t\t\"file_type\":    fileType,\n\t\t\t\"size\":         size,\n\t\t\t\"extension\":    ext,\n\t\t\t\"file_name\":    fileName,\n\t\t\t\"is_directory\": 0,\n\t\t\t\"md5\":          md5Hex,\n\t\t\t\"slice_md5\":    md5Hex,\n\t\t},","sourceCodeStart":459,"sourceCodeEnd":495,"githubUrl":"https://github.com/AlistGo/alist/blob/843d9dc8149126976b2625911e45a4d3ffd6f2f5/drivers/wukong/driver.go#L459-L495","documentation":"Thrown by commitUploadInner when the commit response's first result has a URIStatus that is neither 0 nor 2000 (minUploadSubmitSuccess). The VOD service reported that the committed StoreURI's data is in a bad state (e.g. incomplete, corrupt, or quarantined) even though the commit request itself was processed.","triggerScenarios":"Uploading zero bytes or truncated data to TOS then committing; part of a multipart upload silently missing; CRC mismatch on the storage side; StoreURI data replaced or expired before commit.","commonSituations":"Upload where the temp file cache was truncated (disk full during CacheFullInTempFile); multipart finish accepted with code 4024 but parts incomplete; very small files hitting an edge case in the direct-upload path.","solutions":["Restart the upload end-to-end with a new session (applyUploadInner → upload → commit) ensuring disk space for the temp cache","Verify local file size and readability before Put so the full stream reaches TOS","Log the numeric uri_status and correlate with the VOD error table to identify the exact data-state problem","If reproducible for one file, test uploading it via the Wukong web UI to isolate driver vs. upstream"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":"vid, err := d.commitUploadInner(ctx, auth, spaceName, sessionKey)\nif err != nil && strings.Contains(err.Error(), \"uri_status=\") {\n    // committed data is bad: full re-upload is the only safe path\n    return fmt.Errorf(\"uploaded data rejected by VOD (uri_status), re-upload required: %w\", err)\n}","preventionTips":["Ensure temp-file caching completes before upload so byte counts are exact","Check free disk space before CacheFullInTempFile","Log uri_status values to build a mapping of upstream data-state failures"],"tags":["wukong","upload","vod","commit","uri-status","go"],"backgroundTag":null,"analyzedSha":"843d9dc8149126976b2625911e45a4d3ffd6f2f5","analyzedAt":"2026-08-15T12:14:11.722Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}