AlistGo/alist · error

wukong commit upload inner failed: uri_status=%d

Error message

wukong commit upload inner failed: uri_status=%d

What it means

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.

Source

Thrown at drivers/wukong/driver.go:477

		"Action":    "CommitUploadInner",
		"Version":   "2020-11-19",
		"SpaceName": spaceName,
	}
	body, _ := json.Marshal(map[string]any{
		"SessionKey": sessionKey,
		"Functions":  []any{},
	})
	var resp commitUploadInnerResp
	if err := d.vodRequest(ctx, http.MethodPost, q, body, auth, &resp); err != nil {
		return "", err
	}
	if resp.ResponseMetadata.Error.Code != "" {
		return "", fmt.Errorf("wukong commit upload inner failed: %s", resp.ResponseMetadata.Error.Message)
	}
	if len(resp.Result.Results) > 0 {
		status := resp.Result.Results[0].URIStatus
		if status != 0 && status != minUploadSubmitSuccess {
			return "", fmt.Errorf("wukong commit upload inner failed: uri_status=%d", status)
		}
	}
	return extractVideoVid(&resp), nil
}

func (d *Wukong) uploadSubmit(ctx context.Context, fatherID, fileName, ext string, fileType int, size int64, md5Hex, storeURI, videoVid string) error {
	var resp uploadSubmitResp
	body := map[string]any{
		"base_info": map[string]any{
			"father_id":    asIDValue(fatherID),
			"file_type":    fileType,
			"size":         size,
			"extension":    ext,
			"file_name":    fileName,
			"is_directory": 0,
			"md5":          md5Hex,
			"slice_md5":    md5Hex,
		},

View on GitHub (pinned to 843d9dc814)

Solutions

  1. Restart the upload end-to-end with a new session (applyUploadInner → upload → commit) ensuring disk space for the temp cache
  2. Verify local file size and readability before Put so the full stream reaches TOS
  3. Log the numeric uri_status and correlate with the VOD error table to identify the exact data-state problem
  4. If reproducible for one file, test uploading it via the Wukong web UI to isolate driver vs. upstream
Defensive patterns

Strategy: retry

Try / catch

vid, err := d.commitUploadInner(ctx, auth, spaceName, sessionKey)
if err != nil && strings.Contains(err.Error(), "uri_status=") {
    // committed data is bad: full re-upload is the only safe path
    return fmt.Errorf("uploaded data rejected by VOD (uri_status), re-upload required: %w", err)
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of AlistGo/alist@843d9dc814 (2026-08-15). Data as JSON: /api/errors/67de5ca93f5785f2. Report an issue: GitHub.