Merge pull request #271 from Alearner12/fix/carbon-json-parsing-error

This commit is contained in:
Alicia Sykes 2026-01-31 21:44:58 +00:00 committed by GitHub
commit aac6121e81
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -29,7 +29,17 @@ const carbonHandler = async (url) => {
data += chunk;
});
res.on('end', () => {
resolve(JSON.parse(data));
// Check if response looks like HTML (e.g., Cloudflare challenge page)
const trimmedData = data.trim();
if (trimmedData.startsWith('<!DOCTYPE') || trimmedData.startsWith('<html') || trimmedData.startsWith('<')) {
reject(new Error('WebsiteCarbon API returned HTML instead of JSON. This may be due to Cloudflare protection when running from a datacenter IP.'));
return;
}
try {
resolve(JSON.parse(data));
} catch (parseError) {
reject(new Error(`Failed to parse WebsiteCarbon API response as JSON: ${parseError.message}`));
}
});
}).on('error', reject);
});