transloadit/uppy · error · Error
The `autoRetry` option was deprecated and has been removed.
Error message
The `autoRetry` option was deprecated and has been removed.
What it means
The Tus plugin no longer supports autoRetry; retry behavior was moved into Uppy core. The constructor throws when autoRetry is present in options to prevent silent behavior changes after upgrade.
Source
Thrown at packages/@uppy/tus/src/index.ts:145
requests: RateLimitedQueue
uploaders: Record<string, tus.Upload | null>
uploaderEvents: Record<string, EventManager<M, B> | null>
constructor(uppy: Uppy<M, B>, opts: TusOpts<M, B>) {
super(uppy, { ...defaultOptions, ...opts })
this.type = 'uploader'
this.id = this.opts.id || 'Tus'
if (opts?.allowedMetaFields === undefined && 'metaFields' in this.opts) {
throw new Error(
'The `metaFields` option has been renamed to `allowedMetaFields`.',
)
}
if ('autoRetry' in opts) {
throw new Error(
'The `autoRetry` option was deprecated and has been removed.',
)
}
/**
* Simultaneous upload limiting is shared across all uploads with this plugin.
*
* @type {RateLimitedQueue}
*/
this.requests =
this.opts.rateLimitedQueue ?? new RateLimitedQueue(this.opts.limit)
this.#retryDelayIterator = this.opts.retryDelays?.values()
this.uploaders = Object.create(null)
this.uploaderEvents = Object.create(null)
}
/**View on GitHub (pinned to 5d4dedd02a)
Solutions
- Delete autoRetry from Tus options and rely on core retry: set retryDelays on Uppy core (e.g. new Uppy({ retryDelays: [0, 1000, 3000, 5000] }) or per-upload getResponseData/retry logic)
Example fix
// before
new Tus(uppy, { autoRetry: true })
// after
const uppy = new Uppy({ retryDelays: [0, 1000, 3000, 5000] })
new Tus(uppy) Defensive patterns
Strategy: validation
Validate before calling
delete opts.autoRetry;
// move retry config to core
const uppy = new Uppy({ retryDelays: [0, 1000, 3000, 5000] }) Type guard
const hasRemovedOption = (o: object): o is { autoRetry: unknown } => 'autoRetry' in o Prevention
- Read Uppy migration notes before major upgrades
- Run a lint/grep for deprecated keys (autoRetry, metaFields) on upgrade
When it happens
Trigger: Instantiating new Tus(uppy, { autoRetry: true }) (or any truthy/falsy value) — mere presence of the key triggers the error.
Common situations: Upgrading Uppy from a version where Tus handled retries itself; legacy config files still carrying autoRetry.
Related errors
- The `metaFields` option has been renamed to `allowedMetaFiel
- The Provider option "providerOptions.${deprecated}" is no lo
- Cannot mark a queued request as done: this indicates a bug
- File data is empty
AI-assisted analysis of transloadit/uppy@5d4dedd02a (2026-08-28).
Data as JSON: /api/errors/6e30b3fa1a7bdc22.
Report an issue: GitHub.