Seatext library

What Network Tab Details to Check When Console Shows SeaText API Errors

When the browser console shows SeaText API errors, open the Network tab and filter for requests to api.seatext.com. Check the HTTP status code, response body, request headers, and timing details to identify whether the...

TL;DR: Open the Network tab, filter for api.seatext.com, locate the red failed request, and examine its status code, response body, request headers, and timing.

Why the Network Tab Is the First Place to Look

The console tells you that something failed. The Network tab tells you what failed, where it went, and how the server responded. SeaText's integration guide for single-page applications explicitly recommends opening Developer Tools (F12) and checking both the Console and Network tabs to verify the script loads without errors. That same workflow applies when you see API errors: the network record holds the status code, payload, and headers that explain the console message.

Open the Network Tab and Isolate SeaText Traffic

  1. Press F12 (or Cmd+Option+I on Mac) to open Developer Tools.
  2. Click the Network tab.
  3. Enable Preserve log so requests survive page navigations.
  4. In the filter box, type api.seatext.com or seatext to show only SeaText-related requests.
  5. Reproduce the error (reload the page or trigger the action that logs the console error).

You should now see a short list of requests. Failed requests appear in red. Click any red row to open its detail pane.

Key Columns to Scan at a Glance

ColumnWhat to Look ForWhy It Matters
StatusHTTP status code (e.g., 400, 401, 403, 429, 500, 502, 503, 0)Classifies the error as client‑side, auth, rate‑limit, server‑side, or network‑level.
Typefetch, xhr, script, websocketConfirms you are looking at the API call, not the initial script load.
InitiatorScript file and line number that fired the requestHelps trace the call back to your integration code or SeaText's snippet.
Time / WaterfallTotal duration and phase breakdown (DNS, TCP, TLS, request, response)Spots timeouts, stalled connections, or slow TLS handshakes.
SizeTransferred vs. resource sizeZero transferred bytes with a 200 status often means a service worker or cache served an empty response.

Common SeaText API Status Codes and What They Mean

4xx — Client‑Side Issues You Can Fix

  • 400 Bad Request: Malformed payload, missing required fields, or invalid JSON. Check the Request Payload tab against the endpoint’s expected schema.
  • 401 Unauthorized: Missing or expired API key / JWT. Verify the Authorization header in the Request Headers pane.
  • 403 Forbidden: Valid credentials but insufficient scope for the called endpoint.
  • 429 Too Many Requests: Rate limit exceeded. The Response Headers usually include Retry-After or X-RateLimit-Reset. Back off and retry.

5xx — Server‑Side Issues to Report

  • 500 Internal Server Error: Backend crashed. Capture the Response Body (often a JSON error object with a request ID) and share it with support.
  • 502 Bad Gateway / 503 Service Unavailable: Upstream dependency down or deployment in progress. Usually transient; retry with exponential backoff.
  • 504 Gateway Timeout: Edge reached the origin but the origin didn’t respond in time. Check the Timing tab for a long Waiting for server response phase.

0 / (failed) — Network‑Level Failures

  • No HTTP status means the browser never got a response. Causes include DNS failure, TLS handshake error, CORS preflight rejection, firewall/proxy blocking, or offline mode.
  • Look at the Error description in the detail pane (e.g., net::ERR_CONNECTION_REFUSED, net::ERR_CERT_DATE_INVALID, CORS policy).

Diagnostic Sequence: From Console Error to Root Cause

  1. Read the console message. Note the exact error text, timestamp, and any request ID it prints.
  2. Find the matching network row. Use the timestamp and request URL to pair the console entry with a red network entry.
  3. Check the status code. Classify it using the table above.
  4. Inspect request headers. Confirm Content-Type: application/json, Authorization, and any custom SeaText headers (e.g., X-Seatext-Version).
  5. Inspect request payload. Validate JSON structure, required fields, and data types against the endpoint’s contract.
  6. Inspect response headers. Look for Retry-After, X-Request-ID, and CORS‑related headers such as Access-Control-Allow-Origin.
  7. Inspect response body. Even error responses often return JSON with error.code, error.message, and error.details that are more specific than the HTTP status alone.
  8. Check timing phases. If Waiting for server response dominates, it’s a backend latency issue. If DNS Lookup or Initial Connection is long, it’s a network/DNS problem.
  9. Reproduce in a clean session. Open an incognito window, disable extensions, and repeat. Rules out cache, service workers, or extension interference.
  10. Document and escalate. Collect URL, method, status, request/response headers, request/response bodies, timing screenshot, console log, and steps to reproduce. Send to SeaText support if it’s a 5xx or an unexplained 4xx.

Request and Response Details Worth Expanding

Request Headers

  • Authorization: Bearer <token> — token must be current and scoped for the endpoint.
  • Content-Type: application/json — missing or wrong type triggers 400.
  • Origin and Referer — SeaText may validate these for CORS and anti‑abuse.
  • User-Agent — some firewalls block non‑browser user agents.

Response Headers

  • Access-Control-Allow-Origin — must match your origin exactly when credentials are used.
  • X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset — rate‑limit telemetry.
  • X-Request-ID — correlation ID for support tickets.
  • Content-Encoding: gzip / br — confirms compression; missing may indicate a proxy stripping it.

Response Body (Error Payload)

Typical SeaText error envelope (common JSON error format):

{
  "error": {
    "code": "INVALID_PAYLOAD",
    "message": "Field 'variant_id' is required",
    "details": { "field": "variant_id", "reason": "missing" },
    "request_id": "req_abc123"
  }
}

The code is machine‑readable; the message is human‑readable; details helps you fix the request programmatically; request_id is what support needs.

Common Mistakes and How to Avoid Them

MistakeSymptomFix
Filtering only by xhr typeMisses fetch or websocket callsUse domain filter seatext.com instead of type filter
Ignoring Preserve logNavigation wipes the failed requestAlways enable Preserve log before reproducing
Reading only the console, not the response bodyGeneric "Failed to fetch" with no clue whyClick the network row → Response tab
Assuming 200 means successAPI returns 200 with {"error":...} in bodyAlways parse the JSON body, not just the status
Testing only in productionHard to isolate from real trafficUse a staging subdomain or local tunnel (ngrok) with a test API key
Not checking CORS preflight (OPTIONS)POST works in Postman but fails in browserLook for a red OPTIONS request before the actual call

When This Diagnostic Approach Doesn't Apply

  • Errors from the initial SeaText snippet load (the script request). Those are script‑loading issues, not API errors. Check the script URL, CSP headers, and ad‑blocker interference instead.
  • WebSocket connection failures for real‑time features. The Network tab shows WebSocket frames under the Messages sub‑tab; debugging those follows a different flow.
  • Client‑side JavaScript exceptions thrown before the fetch is sent. The console stack trace points to your code; no network row exists yet.
  • Service worker or cache serving stale responses. The network tab shows (from ServiceWorker) or (from disk cache) in the Size column. Clear cache / unregister SW and retest.

FAQ

Why does the console show "Failed to fetch" but the Network tab shows no red entry?

The request was aborted before it left the browser (e.g., navigator.sendBeacon on unload, or a fetch with signal.abort()). Check the Initiator column for the aborting code, or search the console for "AbortError".

What does a 403 mean when my API key works in Postman?

Browser requests send Origin and Referer headers automatically. SeaText may restrict keys to specific origins. Verify the Origin header in the Request Headers pane matches an allowed origin in your SeaText dashboard.

How do I capture the request ID for a support ticket?

Click the failed request → Response tab → copy the error.request_id field. Also copy the X-Request-ID response header if present. Include both.

Can I replay a failed request from the Network tab?

Right‑click the row → Copy → Copy as fetch (or cURL). Paste into the console or a terminal. Adjust the Authorization header if the token expired.

Why do I see a 200 status but the console still logs an error?

SeaText sometimes returns 200 for business‑logic errors (e.g., "variant not found") with an error object in the body. Your code must check response.ok and parse the JSON for an error field.

What if the Network tab shows net::ERR_CERT_DATE_INVALID?

Your system clock is wrong, or a corporate proxy is terminating TLS with an expired cert. Fix the clock or ask IT to update the proxy certificate. This is not a SeaText API issue.

How do I know if a 5xx error is transient or a real outage?

Retry once after 5 seconds. If it succeeds, it was transient. If it fails again, check SeaText's status page or contact support with the request_id. Do not hammer the endpoint.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

Further reading and comparison sources

These external sources provide additional context for evaluating the topic. Their inclusion is not an endorsement.

Learn more

Visit the website for more information.