> Restart schedule, maintenance windows, and how to handle downtime
The Polymarket matching engine undergoes periodic restarts for maintenance and upgrades. This page covers the restart schedule, how to detect and handle downtime, and where to get advance notice of changes.
***
## Restart Schedule
The matching engine restarts **weekly on Tuesdays at 7:00 AM ET**. During a restart window, the engine is temporarily unavailable — typically for about **90 seconds**.
Join the #trading-apis channel in the Polymarket Discord.
</Card>
</CardGroup>
Announcements typically include **what's changing**, the **scheduled time**, and the **expected downtime window**. The goal is \~2 days notice when possible.
***
## Handling HTTP 425
During a restart window, the CLOB API returns **HTTP 425 (Too Early)** on all order-related endpoints. This tells your client that the matching engine is restarting and will be back shortly.
### Recommended Retry Strategy
<Steps>
<Step title="Detect 425">
When you receive an HTTP `425` response, the matching engine is restarting. Do not treat this as a permanent error.
</Step>
<Step title="Back off and retry">
Wait and retry with exponential backoff. Start at 1–2 seconds and increase the interval on each retry.
</Step>
<Step title="Resume normal operation">
Once you receive a successful response, the engine is back online. Resume normal order flow.
</Step>
</Steps>
### Code Examples
Check the HTTP status code on responses to the CLOB API and retry on `425`:
<CodeGroup>
```typescript TypeScript theme={null}
const CLOB_HOST = "https://clob.polymarket.com";
async function postWithRetry(path: string, body: any, headers: Record<string, string>) {
const MAX_RETRIES = 10;
let delay = 1000;
for (let attempt = 0; attempt < MAX_RETRIES; attempt++) {
* **Subscribe to announcement channels** — get notified before restarts happen so you can prepare
* **Handle 425 gracefully** — treat it as a temporary condition, not an error; your retry logic should resume automatically
* **Avoid aggressive retries** — the engine needs time to reload orderbooks; rapid-fire retries won't speed things up and may hit rate limits once the engine is back
* **Log restart events** — track when your client encounters 425s to correlate with announced maintenance windows