transloadit/uppy · error · Error

The Provider option "providerOptions.

Error message

The Provider option "providerOptions.${deprecated}" is no longer supported. Please use the option "${deprecatedOptions[deprecated]}" instead.

What it means

Companion renamed its provider options: top-level providerOptions.microsoft/google/s3 were restructured into providerOptions.onedrive/providerOptions.drive and an s3 section. Using the old names triggers this startup error with the suggested replacement.

Solutions

  1. Rename providerOptions.microsoft to providerOptions.onedrive
  2. Rename providerOptions.google to providerOptions.drive
  3. Move s3 options to the new top-level s3 config section as indicated by the message

Example fix

// before
providerOptions: { microsoft: { credentials: {...} } }

// after
providerOptions: { onedrive: { credentials: {...} } }
Defensive patterns

Strategy: validation

Validate before calling

const OLD = { microsoft: 'onedrive', google: 'drive' }
for (const [oldK, newK] of Object.entries(OLD)) {
  if (providerOptions[oldK]) { providerOptions[newK] = providerOptions[oldK]; delete providerOptions[oldK] }
}

Type guard

null

Try / catch

null

Prevention

When it happens

Trigger: Passing companionOptions like { providerOptions: { microsoft: {...} } } or { google: {...} } / { s3: {...} } in the old shape.

Common situations: Upgrading Companion from an older major version without migrating config; following outdated documentation or blog posts.

Related errors


AI-assisted analysis of transloadit/uppy@5d4dedd02a (2026-08-28). Data as JSON: /api/errors/fe62eab7d23bbd4a. Report an issue: GitHub.

Appendix: source

Thrown at packages/@uppy/companion/src/config/companion.ts:123

  const { providerOptions, server, uploadUrls } = companionOptions

  // see https://github.com/transloadit/uppy/issues/4271
  // todo fix the code so we can allow `/`
  if (server.path === '/') {
    throw new Error(
      "If you want to use '/' as server.path, leave the 'path' variable unset",
    )
  }

  if (providerOptions) {
    const deprecatedOptions: Record<string, string> = {
      microsoft: 'providerOptions.onedrive',
      google: 'providerOptions.drive',
      s3: 's3',
    }
    Object.keys(deprecatedOptions).forEach((deprecated) => {
      if (Object.hasOwn(providerOptions, deprecated)) {
        throw new Error(
          `The Provider option "providerOptions.${deprecated}" is no longer supported. Please use the option "${deprecatedOptions[deprecated]}" instead.`,
        )
      }
    })
  }

  if (uploadUrls == null || uploadUrls.length === 0) {
    if (process.env['NODE_ENV'] === 'production') {
      throw new Error('uploadUrls is required')
    }
    logger.error(
      'Running without uploadUrls is a security risk and Companion will refuse to start up when running in production (NODE_ENV=production)',
      'startup.uploadUrls',
    )
  }

  const { corsOrigins } = companionOptions
  if (corsOrigins == null) {

View on GitHub (pinned to 5d4dedd02a)