debug: log Ivanti map endpoint response details on failure

This commit is contained in:
jramos
2026-04-13 13:30:10 -06:00
parent 66bbeb84a5
commit 55e3e074a5

View File

@@ -874,13 +874,16 @@ function createIvantiFpWorkflowRouter(db, requireAuth) {
} }
if (mapResult.status !== 200 && mapResult.status !== 201 && mapResult.status !== 202) { if (mapResult.status !== 200 && mapResult.status !== 201 && mapResult.status !== 202) {
console.error('[mapFindings] Ivanti map failed — status:', mapResult.status, 'body:', (mapResult.body || '').substring(0, 500));
console.error('[mapFindings] Request URL:', mapUrl);
console.error('[mapFindings] Request fields:', JSON.stringify(formFields));
const errorMap = { const errorMap = {
401: 'Ivanti API key is invalid or missing. Contact your administrator.', 401: 'Ivanti API key is invalid or missing. Contact your administrator.',
419: 'API key lacks permissions for this operation.', 419: 'API key lacks permissions for this operation.',
429: 'Ivanti API rate limit reached. Please try again in a few minutes.' 429: 'Ivanti API rate limit reached. Please try again in a few minutes.'
}; };
const errorMsg = mapResult.status >= 500 const errorMsg = mapResult.status >= 500
? 'Ivanti API is temporarily unavailable. Please try again later.' ? `Ivanti API error (${mapResult.status}). Response: ${(mapResult.body || '').substring(0, 200)}`
: (errorMap[mapResult.status] || `Operation failed: ${mapResult.status}`); : (errorMap[mapResult.status] || `Operation failed: ${mapResult.status}`);
return res.status(mapResult.status === 429 ? 429 : 502).json({ success: false, error: errorMsg }); return res.status(mapResult.status === 429 ? 429 : 502).json({ success: false, error: errorMsg });
} }