story-research-zapwall/lib/api/nip95-upload/requestErrorResponse.ts
2026-01-13 17:23:28 +01:00

33 lines
1.2 KiB
TypeScript

import type { NextApiResponse } from 'next'
import type { UploadedFile } from './types'
export function handleProxyError(params: {
res: NextApiResponse
error: unknown
targetEndpoint: string
hostname: string
file: UploadedFile
}): void {
const errorMessage = params.error instanceof Error ? params.error.message : 'Unknown request error'
const isDnsError = errorMessage.includes('DNS resolution failed') || errorMessage.includes('ENOTFOUND') || errorMessage.includes('EAI_AGAIN')
console.error('NIP-95 proxy request error:', {
targetEndpoint: params.targetEndpoint,
hostname: params.hostname,
error: errorMessage,
isDnsError,
fileSize: params.file.size,
fileName: params.file.originalFilename,
suggestion: isDnsError ? 'The server cannot resolve the domain name. Check DNS configuration and network connectivity.' : undefined,
})
if (isDnsError) {
params.res.status(500).json({
error: `DNS resolution failed for ${params.hostname}. The server cannot resolve the domain name. Please check DNS configuration and network connectivity.`,
})
return
}
params.res.status(500).json({ error: `Failed to connect to upload endpoint: ${errorMessage}` })
}