eyaltoledano/claude-task-master · warning
Failed to initialize API storage, falling back to file…
Error message
Failed to initialize API storage, falling back to file storage:
What it means
StorageFactory.createWithFallback() tries API-backed storage first; if creating or initializing it throws, it logs this warning (with the error) and falls back to local file storage, so the app keeps working but without the remote store.
Solutions
- Inspect the logged error object for the root cause (auth vs network vs config)
- Verify API credentials and base URL in the storage config; test the endpoint with curl
- Fix network/firewall issues so the API endpoint is reachable
- Accept the file-storage fallback knowingly, or explicitly choose file storage to silence the warning
Example fix
// before
const storage = await StorageFactory.createWithFallback(config); // silently uses file storage
// after
const storage = await StorageFactory.createWithFallback(config);
if (storage.type !== 'api') console.warn('Running on file storage fallback; API storage failed to initialize'); Defensive patterns
Strategy: fallback
Validate before calling
const reachable = await fetch(`${config.apiBaseUrl}/health`, { method: 'HEAD' }).then(r => r.ok).catch(() => false);
if (!reachable) console.warn('API unreachable; expect file-storage fallback'); Try / catch
const storage = await StorageFactory.createWithFallback(config);
if (storage.constructor.name !== 'ApiStorage') {
logger.warn('Proceeding with file storage; API storage init failed — check credentials/network');
} Prevention
- Verify API base URL and token in config before startup
- Add a health-check ping to the storage API in deployment checks
- Decide explicitly whether file-storage fallback is acceptable for your environment
- Monitor logs for this warning to detect silent fallbacks
When it happens
Trigger: createWithFallback() invoked when API storage cannot be created/initialized — unreachable API endpoint, invalid/missing auth credentials in config, unsupported config shape, or network failure during initialize().
Common situations: Offline development machine, wrong API base URL or expired token in config, API server down during deploy, firewall blocking the endpoint in CI.
Related errors
AI-assisted analysis of eyaltoledano/claude-task-master@c0c98d367c (2026-08-29).
Data as JSON: /api/errors/7ffc069559f255e6.
Report an issue: GitHub.
Appendix: source
Thrown at packages/tm-core/src/modules/storage/services/storage-factory.ts:275
}
/**
* Create a storage implementation with fallback
* Tries API storage first, falls back to file storage
*/
static async createWithFallback(
config: Partial<IConfiguration>,
projectPath: string
): Promise<IStorage> {
// Try API storage if configured
if (StorageFactory.isHamsterAvailable(config)) {
try {
const apiStorage = StorageFactory.createApiStorage(config);
await apiStorage.initialize();
return apiStorage;
} catch (error) {
const logger = getLogger('StorageFactory');
logger.warn(
'Failed to initialize API storage, falling back to file storage:',
error
);
}
}
// Fallback to file storage
return StorageFactory.createFileStorage(projectPath, config);
}
}
View on GitHub (pinned to c0c98d367c)