REST API
500 Internal Server Error
ErrorValidateRequestEasy
What you will learn
- 500 is a server bug โ assert that the error envelope does NOT leak stack traces or SQL
- Correlation ID (X-Request-Id) must be in the 5xx response โ without it, debugging is impossible
- Retry safety: an idempotent request that 500s should be retryable without side effects
Description
Handle server errors gracefully. Verify error logging.
Test Scenario
const response = await request.get('/api/v1/errors/500');
expect(response.status()).toBe(500);
// Error payloads nest the message under .error: { error: { code, message } }
const body = await response.json();
expect(body.error.message).not.toContain('stack');Endpoint
/api/v1/errors/500Testing Tips
- โขTrigger intentional server error
- โขCheck error ID for tracking
- โขVerify no sensitive info exposed
// Playwright - 500 Server Errorimport { test, expect } from '@playwright/test';test('Handle 500 errors gracefully', async ({ request }) => {// Trigger server error (varies by API)const response = await request.get('/api/v1/errors/500');expect(response.status()).toBe(500);// Errors use the envelope: { error: { code, message } }; never leak stack tracesconst body = await response.json();expect(body.error.message).not.toContain('stack');});
Challenge ID: rest-error-500
2 frameworks available
API Playground
Send requests and inspect responses
Endpoint: /api/v1/errors/500
Press Enter to send