34 lines
1.2 KiB
TypeScript
34 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}` })
|
|
}
|
|
|