fix(api): prevent startup failure from meilisearch outage

This commit is contained in:
Hampus Kraft 2026-02-19 17:55:06 +00:00
parent 868ddecda4
commit f964a4eabb
No known key found for this signature in database
GPG Key ID: 6090864C465A454D

View File

@ -90,10 +90,17 @@ export function createInitializer(config: APIConfig, logger: ILogger): () => Pro
} }
logger.info({search_url: config.search.url}, 'Initializing search...'); logger.info({search_url: config.search.url}, 'Initializing search...');
let searchInitialized = false;
try {
await initializeSearch(); await initializeSearch();
searchInitialized = true;
logger.info('Search initialized'); logger.info('Search initialized');
} catch (error) {
logger.warn({error}, 'Search initialisation failed; continuing startup without search');
}
// All API replicas share the same Meilisearch cluster, so only one should warm it. // All API replicas share the same Meilisearch cluster, so only one should warm it.
if (searchInitialized) {
const warmupLockKey = 'fluxer:search:warmup:admin'; const warmupLockKey = 'fluxer:search:warmup:admin';
const warmupLockToken = randomUUID(); const warmupLockToken = randomUUID();
const warmupLockTtlSeconds = 60 * 60; const warmupLockTtlSeconds = 60 * 60;
@ -118,6 +125,7 @@ export function createInitializer(config: APIConfig, logger: ILogger): () => Pro
} }
} }
} }
}
if (config.voice.enabled && config.voice.defaultRegion) { if (config.voice.enabled && config.voice.defaultRegion) {
const voiceDataInitializer = new VoiceDataInitializer(); const voiceDataInitializer = new VoiceDataInitializer();