SiteError.comYour friendly guide to HTTP status codes
Status CodesBlog
  1. Home
  2. 4xx Client Error
  3. 425 Too Early

425 Too Early

⏰
425
Too Early
!
?

Example HTTP Response

HTTP Response
HTTP/1.1 425 Too Early
Common Causes
  • TLS Early Data (0-RTT) replay risk
  • Request sent before connection fully established
  • Security precaution against replay attacks
Technical Details

What does this mean?

Hold your horses! The server isn't ready to trust this request yet. It might be a replay attack in disguise.

Technical Definition

The server is unwilling to risk processing a request that might be replayed.

RFC Says

"The 425 (Too Early) status code indicates that the server is unwilling to risk processing a request that might be replayed. User agents that support this status code SHOULD automatically retry the request after the TLS handshake is complete."

Plain English:

425 means 'I'm not willing to process your request yet because we're in the early stages of the TLS connection, and your request might be vulnerable to replay attacks.' This is part of TLS 1.3's early data (0-RTT) feature. The client should retry once the full TLS handshake is done.

Common Misinterpretation

This is highly specialized and specific to TLS 1.3 early data. Application developers will almost never need to return this - it's handled at the TLS/web server level. Don't use it for rate limiting or other 'too early' scenarios - use 429 for rate limiting.

View RFC Documentation
Code Snippets

Ready-to-use code for returning this HTTP status in your application:

Node.js
// Express.js
app.get('/example', (req, res) => {
  res.status(425).json({
    error: 'Too Early',
    message: 'Your error message here'
  });
});

// Native HTTP
const http = require('http');

http.createServer((req, res) => {
  res.writeHead(425, { 'Content-Type': 'application/json' });
  res.end(JSON.stringify({
    error: 'Too Early',
    message: 'Your error message here'
  }));
}).listen(3000);

425 Too Early FAQ

What causes a 425 Too Early error?

TLS Early Data (0-RTT) replay risk. Request sent before connection fully established. Security precaution against replay attacks.

424 Failed Dependency426 Upgrade Required

Popular Status Codes

  • 200 OK
  • 301 Moved Permanently
  • 302 Found
  • 400 Bad Request
  • 401 Unauthorized
  • 403 Forbidden
  • 404 Not Found
  • 500 Internal Server Error
  • 502 Bad Gateway
  • 503 Service Unavailable

Compare Codes

  • 401 vs 403
  • 301 vs 302
  • 404 vs 410
  • 500 vs 502
  • Compare any codes →

Categories

  • Informational
  • Success
  • Redirection
  • Client Error
  • Server Error
  • NGINX
  • Cloudflare
  • AWS ELB
  • Microsoft IIS

Tools

  • Cheat Sheet
  • Status Code Quiz
  • URL Checker
  • API Playground
  • Blog

© 2026 SiteError.com. All rights reserved.