{"record":{"id":"1289010ad30eacba","repo":"mastra-ai/mastra","slug":"database-provisioning-failed-db-error-db-e","errorCode":null,"errorMessage":"Database provisioning failed${db.error ? `: ${db.error}` : ' (no error detail from provider)'}","messagePattern":"Database provisioning failed(.+?)` : ' \\(no error detail from provider\\)'\\}","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/cli/src/commands/db/platform-api.ts","lineNumber":210,"sourceCode":"  const maxWaitMs = opts?.maxWaitMs ?? 5 * 60 * 1000;\n  const intervalMs = opts?.intervalMs ?? 3000;\n  const start = Date.now();\n  let lastStatus: DatabaseStatus | '' = '';\n\n  while (true) {\n    const db = await withPollingRetries(() => fetchDatabase(token, orgId, projectId, dbId));\n\n    if (db.status !== lastStatus) {\n      lastStatus = db.status;\n      opts?.onStatus?.(db.status);\n    }\n\n    if (db.status === 'ready') {\n      return db;\n    }\n\n    if (db.status === 'failed') {\n      throw new Error(`Database provisioning failed${db.error ? `: ${db.error}` : ' (no error detail from provider)'}`);\n    }\n\n    if (db.status === 'deleting' || db.status === 'deleted') {\n      throw new Error(\n        `Database was ${db.status === 'deleted' ? 'deleted' : 'scheduled for deletion'} while provisioning`,\n      );\n    }\n\n    if (Date.now() - start >= maxWaitMs) {\n      throw new Error(\n        `Timed out waiting for database to become ready (last status: ${db.status}). ` +\n          `Check again with: mastra env db show ${dbId}`,\n      );\n    }\n\n    await new Promise(resolve => setTimeout(resolve, intervalMs));\n  }\n}","sourceCodeStart":192,"sourceCodeEnd":228,"githubUrl":"https://github.com/mastra-ai/mastra/blob/75dd419e613fe9c39f846ffc500716141b74fda6/packages/cli/src/commands/db/platform-api.ts#L192-L228","documentation":"pollDatabaseUntilReady polls the platform database resource after a create request until status becomes 'ready'. If the provider reports status 'failed', provisioning is terminal and the CLI throws immediately, appending db.error when the provider supplied a reason, or a generic note when it did not. This is the CLI surfacing an asynchronous server-side provisioning failure rather than a client bug.","triggerScenarios":"createDatabase -> pollDatabaseUntilReady observes db.status === 'failed' on a poll iteration; db.error may carry the provider's detail or be absent.","commonSituations":"Cloud provider quota/region capacity limits, invalid database size/tier combination, unsupported region, or an internal provider error during first-time provisioning.","solutions":["Read the appended db.error detail and fix the underlying provider issue (quota, region, size)","Retry `mastra env db create` once the provider issue is resolved","Try a different region or instance size if the error indicates capacity or unsupported configuration","Contact support / check provider status page if db.error was absent (no detail from provider)"],"exampleFix":"// before\nawait createDatabase({ region: 'us-east-x', size: 'huge' }); // status failed: unsupported region\n// after\nawait createDatabase({ region: 'us-east-1', size: 'standard' }); // supported config","handlingStrategy":"try-catch","validationCode":"// Validate region/size against supported values before creating:\nconst SUPPORTED_REGIONS = ['us-east-1','eu-west-1'];\nif (!SUPPORTED_REGIONS.includes(opts.region)) throw new Error('Unsupported region: ' + opts.region);","typeGuard":"function isProvisioningFailed(db: { status: string; error?: string }): db is { status: 'failed'; error?: string } {\n  return db.status === 'failed';\n}","tryCatchPattern":"try {\n  const db = await createDatabase(opts);\n} catch (err) {\n  const msg = err instanceof Error ? err.message : String(err);\n  if (msg.startsWith('Database provisioning failed')) {\n    console.error('Provider said:', msg.replace('Database provisioning failed', '').trim() || '(no detail)');\n  } else throw err;\n}","preventionTips":["Check provider quota/limits before provisioning large or many databases","Use supported regions/sizes documented by the platform","Capture and log the appended db.error detail for support tickets","Retry with a different region on capacity-related failures"],"tags":["provisioning","cloud-provider","polling","cli"],"backgroundTag":"resource-provisioning-failed","analyzedSha":"75dd419e613fe9c39f846ffc500716141b74fda6","analyzedAt":"2026-08-30T00:15:31.844Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}