diff --git a/src/app/api/providers/replicate/models/route.ts b/src/app/api/providers/replicate/models/route.ts index 6a2eed45..b19fb1f4 100644 --- a/src/app/api/providers/replicate/models/route.ts +++ b/src/app/api/providers/replicate/models/route.ts @@ -186,9 +186,25 @@ export async function GET( if (isSearchRequest) { const data: ReplicateSearchResponse = await response.json(); + // Defensive null check - search API may return different structure + if (!data.results) { + console.log(`[Replicate:${requestId}] Search returned no results array`); + return NextResponse.json({ + success: true, + models: [], + }); + } models = data.results.map((result) => mapToProviderModel(result.model)); } else { const data: ReplicateModelsResponse = await response.json(); + // Defensive null check for list endpoint as well + if (!data.results) { + console.log(`[Replicate:${requestId}] List returned no results array`); + return NextResponse.json({ + success: true, + models: [], + }); + } models = data.results.map(mapToProviderModel); } diff --git a/src/lib/providers/replicate.ts b/src/lib/providers/replicate.ts index e4657c04..6aab9431 100644 --- a/src/lib/providers/replicate.ts +++ b/src/lib/providers/replicate.ts @@ -161,6 +161,11 @@ const replicateProvider: ProviderInterface = { } const data: ReplicateModelsResponse = await response.json(); + // Defensive null check - API may return different structure + if (!data.results) { + console.warn("[Replicate] List returned no results array"); + return []; + } return data.results.map(mapToProviderModel); } catch (error) { console.error("[Replicate] Failed to list models:", error); @@ -190,6 +195,11 @@ const replicateProvider: ProviderInterface = { } const data: ReplicateSearchResponse = await response.json(); + // Defensive null check - search API may return different structure + if (!data.results) { + console.warn("[Replicate] Search returned no results array"); + return []; + } return data.results.map((result) => mapToProviderModel(result.model)); } catch (error) { console.error("[Replicate] Failed to search models:", error);