Skip to main content
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/500

Testing Tips

  • โ€ขTrigger intentional server error
  • โ€ขCheck error ID for tracking
  • โ€ขVerify no sensitive info exposed
// Playwright - 500 Server Error
import { 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 traces
const 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