Seamless Digital Experience.
Happy Customers.

Digital Experience and Error Monitoring Platform - Zipy

Ensuring Compliance with 428 Precondition Required - HTTP Error Code 428

Anchal Rastogi
~ 7 min read | Published on Mar 28, 2024


Fix bugs faster with Zipy!

  • Session replay
  • Network calls
  • Console Logs
  • Stack traces
  • User identification
Get Started for Free

What is a 428 Error?

In the realm of web development, encountering HTTP status codes is not uncommon. Among these, the 428 Precondition Required error stands out. It's essential to understand what exactly this error signifies to effectively address it.

The 428 status code indicates that the server requires the request to be conditional, typically to prevent the "lost update" problem. This means the client needs to include one or more conditional header fields in the request to satisfy the server's preconditions for processing.

Catch HTTP Network errors proactively with Zipy. Sign up for free!

Try Zipy now

What are the Possible Causes for 428 Error?

Understanding the root causes of the 428 error is crucial for effective troubleshooting. Here are some potential triggers:

  1. Missing Conditional Headers: If the client fails to include the necessary conditional headers in the request, the server may respond with a 428 error.
  2. Incorrect Implementation: Improper implementation of conditional requests on either the client or server side can lead to the generation of 428 errors.
  3. Incompatible Client: Some clients may not support conditional requests or may not include the required headers, resulting in a 428 response from the server.

How to Handle 428 in JavaScript

When encountering a 428 error in JavaScript, it's important to handle it gracefully. Below is a basic example demonstrating how to handle this error using a try-catch block:

try {
  // Code that may cause a 428 error
} catch (error) {
  if (error.response.status === 428) {
    // Handle 428 error
    console.error("428 Precondition Required: Include required headers");
  } else {
    // Handle other errors
    console.error("An error occurred:", error.message);

Best Practices for Using 428 Status Code

To ensure smooth functioning and proper handling of the 428 status code, consider the following best practices:

  1. Clear Documentation: Document the required conditional headers and their purpose to guide clients effectively.
  2. Consistent Implementation: Ensure consistency in implementing conditional requests across client and server applications.
  3. Error Handling: Implement robust error handling mechanisms to gracefully manage 428 errors and provide meaningful feedback to users.

How to Test 428 Status Code on Postman

Testing the 428 status code on Postman is relatively straightforward. Follow these steps:

  1. Open Postman and create a new request for the endpoint you want to test.
  2. Add the necessary conditional headers required by the server in the request headers section.
  3. Send the request and observe the response. If the server requires additional conditions, it will respond with a 428 error.

How to Test 428 Status Code in DevTools Browser in Chrome

Testing the 428 status code in the DevTools of the Chrome browser can be done as follows:

  1. Open Chrome and navigate to the webpage you want to test.
  2. Open DevTools by pressing F12 or right-clicking on the page and selecting "Inspect."
  3. Go to the "Network" tab and initiate the request to the server.
  4. Inspect the response headers for the presence of the 428 status code.

Debug and fix API errors with Zipy Error Monitoring.

Sign up for free

Frequently Asked Questions

Q: How can I prevent encountering 428 errors in my applications?

A: To avoid 428 errors, ensure that your client applications include the necessary conditional headers specified by the server in their requests.

Q: What should I do if I receive a 428 error despite including the required headers?

A: Double-check the headers you've included to ensure they meet the server's expectations. If the error persists, consult the server documentation or contact the server administrator for further assistance.

Q: Can a server respond with a 428 error for all requests?

A: While it's technically possible, it's not recommended. The 428 status code should be used selectively for requests that require specific preconditions to be met.

Q: Are there any alternative status codes similar to 428?

A: Yes, the 412 Precondition Failed status code is similar to 428 but is typically used when preconditions specified by the client are not met.

Q: Is it necessary for every HTTP request to include conditional headers to prevent 428 errors?

A: No, not every request requires conditional headers. Servers specify when conditional headers are necessary for processing a request, typically in the documentation for the respective API or endpoint.


Ensuring compliance with the 428 Precondition Required error is essential for maintaining the integrity and security of web applications. By understanding its causes, handling it effectively in JavaScript, and following best practices, developers can mitigate the risk of encountering this error. Remember to test requests using tools like Postman and Chrome DevTools to verify proper implementation. For comprehensive error monitoring and handling, consider utilizing Zipy's tool with session replay capabilities, available at Zipy.

Read more resources on 4xx error status codes

Call to Action

Feel free to comment or write to us in case you have any further questions at We would be happy to help you. In case you want to explore for your app, you can sign up or book a demo.

Fix bugs faster with Zipy!

Get Started for Free
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

Want to solve customer bugs even before they're reported?

The unified digital experience platform to drive growth with Product Analytics, Error Tracking, and Session Replay in one.

SOC 2 Type 2
Zipy is GDPR and SOC2 Type II Compliant
© 2023 Zipy Inc. | All rights reserved
by folks just like you
// open links in new tab script