mastra-ai/mastra · error · Error
Database provisioning failed${db.error ? `: ${db.error}` : '
Error message
Database provisioning failed${db.error ? `: ${db.error}` : ' (no error detail from provider)'} What it means
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.
Source
Thrown at packages/cli/src/commands/db/platform-api.ts:210
const maxWaitMs = opts?.maxWaitMs ?? 5 * 60 * 1000;
const intervalMs = opts?.intervalMs ?? 3000;
const start = Date.now();
let lastStatus: DatabaseStatus | '' = '';
while (true) {
const db = await withPollingRetries(() => fetchDatabase(token, orgId, projectId, dbId));
if (db.status !== lastStatus) {
lastStatus = db.status;
opts?.onStatus?.(db.status);
}
if (db.status === 'ready') {
return db;
}
if (db.status === 'failed') {
throw new Error(`Database provisioning failed${db.error ? `: ${db.error}` : ' (no error detail from provider)'}`);
}
if (db.status === 'deleting' || db.status === 'deleted') {
throw new Error(
`Database was ${db.status === 'deleted' ? 'deleted' : 'scheduled for deletion'} while provisioning`,
);
}
if (Date.now() - start >= maxWaitMs) {
throw new Error(
`Timed out waiting for database to become ready (last status: ${db.status}). ` +
`Check again with: mastra env db show ${dbId}`,
);
}
await new Promise(resolve => setTimeout(resolve, intervalMs));
}
}View on GitHub (pinned to 75dd419e61)
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)
Example fix
// before
await createDatabase({ region: 'us-east-x', size: 'huge' }); // status failed: unsupported region
// after
await createDatabase({ region: 'us-east-1', size: 'standard' }); // supported config Defensive patterns
Strategy: try-catch
Validate before calling
// Validate region/size against supported values before creating:
const SUPPORTED_REGIONS = ['us-east-1','eu-west-1'];
if (!SUPPORTED_REGIONS.includes(opts.region)) throw new Error('Unsupported region: ' + opts.region); Type guard
function isProvisioningFailed(db: { status: string; error?: string }): db is { status: 'failed'; error?: string } {
return db.status === 'failed';
} Try / catch
try {
const db = await createDatabase(opts);
} catch (err) {
const msg = err instanceof Error ? err.message : String(err);
if (msg.startsWith('Database provisioning failed')) {
console.error('Provider said:', msg.replace('Database provisioning failed', '').trim() || '(no detail)');
} else throw err;
} Prevention
- 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
When it happens
Trigger: createDatabase -> pollDatabaseUntilReady observes db.status === 'failed' on a poll iteration; db.error may carry the provider's detail or be absent.
Common situations: Cloud provider quota/region capacity limits, invalid database size/tier combination, unsupported region, or an internal provider error during first-time provisioning.
Related errors
- Timed out waiting for database to become ready (last status:
- Database was ${db.status === 'deleted' ? 'deleted' : 'schedu
- Platform Linear event polling interval must be a positive nu
- Platform Linear reconcile interval must be a positive number
- Invalid --region "${region}". Expected one of: eu, us.
AI-assisted analysis of mastra-ai/mastra@75dd419e61 (2026-08-30).
Data as JSON: /api/errors/1289010ad30eacba.
Report an issue: GitHub.