Flexport Incident Runbook
Overview
Incident response procedures for Flexport logistics API integration failures. Covers shipment tracking outages, customs data sync failures, webhook delivery loss, and API degradation scenarios. Flexport powers real-time supply chain visibility, so incidents directly impact shipment tracking, booking workflows, and customs compliance reporting. Classify severity immediately using the matrix below, then follow the matching playbook.
Prerequisites
- An incident commander, communication owner, secure evidence location, credential-revocation path, and rollback operator.
- Redaction rules for commercial terms, addresses, customs documents, invoice details, and shipment payloads.
Instructions
- Assign severity and an opaque incident ID; pause unsafe booking, sync, or notification workflows.
- Classify the event as availability, authorization, delivery, data-integrity, policy, or suspected exposure.
- Apply the smallest safe mitigation, verify recovery using a sandbox/read-only probe, and test a safe failure path.
- Rotate/revoke credentials when exposure is possible and resume queues only after idempotency and destination checks pass.
- Record the timeline, impact, mitigation, owner, and post-incident follow-up.
Output
Produce a redacted incident receipt with severity, opaque ID, impact, mitigation, recovery verification, rollback/revocation decision, and follow-ups. Sensitive evidence stays in the approved incident store.
Examples
For a simulated webhook outage, pause the staging worker and verify no milestone is replayed twice. Restore one synthetic canary event after health recovers, then resume only when the incident commander records the recovery evidence.
Severity Levels
| Level |
Definition |
Response Time |
Example |
| P1 - Critical |
Full API outage or customs data loss |
15 min |
Flexport API returns 5xx on all endpoints |
| P2 - High |
Partial failure or webhook delivery loss |
30 min |
Webhook events not arriving, stale shipment data |
| P3 - Medium |
Degraded performance or rate limiting |
2 hours |
429 responses, elevated latency on tracking calls |
| P4 - Low |
Single endpoint issue or key rotation |
8 hours |
One shipment query failing, API key nearing expiry |
Diagnostic Steps
# Check API health
curl -s -o /dev/null -w "HTTP %{http_code}\n" \
-H "Authorization: Bearer $FLEXPORT_API_KEY" \
-H "Flexport-Version: 2" \
https://api.flexport.com/shipments?per=1
# Check platform status
curl -s https://status.flexport.com/api/v2/status.json | jq -r '.status.description'
# Check rate limit remaining
curl -s -D - -o /dev/null \
-H "Authorization: Bearer $FLEXPORT_API_KEY" \
-H "Flexport-Version: 2" \
https://api.flexport.com/shipments?per=1 2>/dev/null | grep -i "x-ratelimit"
Incident Playbooks
API Outage
- Confirm via status.flexport.com and diagnostic script above
- Enable circuit breaker to serve cached shipment data
- Notify downstream consumers that tracking data is stale
- Queue failed requests for replay once API recovers
- Monitor status page for Flexport resolution updates
Authentication Failure
- Verify API key is set and not expired: check
$FLEXPORT_API_KEY
- Test with a minimal authenticated request (see diagnostics)
- If 401: rotate API key in Flexport portal, deploy new key
- If 403: check API key scopes match required permissions
- Revoke compromised keys after new key is confirmed working
Data Sync Failure
- Check webhook endpoint health — is your receiver returning 200?
- Query
/webhooks to verify subscription is active
- Identify missed events by comparing last processed timestamp
- Trigger manual sync for affected shipments via
/shipments polling
- Replay missed webhook events using Flexport's retry mechanism
Communication Template
**Incident**: Flexport Integration [Outage/Degradation]
**Status**: [Investigating/Identified/Mitigating/Resolved]
**Started**: YYYY-MM-DD HH:MM UTC
**Impact**: [N shipments affected / tracking data stale since HH:MM]
**Current action**: [Circuit breaker active / manual sync running / key rotation in progress]
**Next update**: HH:MM UTC
Post-Incident
Error Handling
| Incident Type |
Detection |
Resolution |
| Shipment tracking outage |
5xx on /shipments endpoints |
Circuit breaker + cached data fallback |
| Customs data sync failure |
Stale customs docs, webhook gaps |
Manual sync + webhook replay |
| Webhook delivery loss |
Missing events in processing queue |
Verify endpoint, replay from last checkpoint |
| API rate limiting |
429 responses, Retry-After header |
Reduce concurrency, implement request queuing |
| API key compromise |
Unexpected 401 after working state |
Rotate key immediately, audit access logs |
Resources
Next Steps
See flexport-observability for monitoring setup and alerting thresholds.
1---2name: flexport-incident-runbook3description: Execute Flexport incident response for API outages, webhook failures, and supply chain data sync issues with triage and mitigation steps. Trigger: "flexport incident", "flexport outage", "flexport down", "flexport emergency".4license: MIT5---6# Flexport Incident Runbook
7
8## Overview
9
10Incident response procedures for Flexport logistics API integration failures. Covers shipment tracking outages, customs data sync failures, webhook delivery loss, and API degradation scenarios. Flexport powers real-time supply chain visibility, so incidents directly impact shipment tracking, booking workflows, and customs compliance reporting. Classify severity immediately using the matrix below, then follow the matching playbook.
11
12## Prerequisites
13
14- An incident commander, communication owner, secure evidence location, credential-revocation path, and rollback operator.
15- Redaction rules for commercial terms, addresses, customs documents, invoice details, and shipment payloads.
16
17## Instructions
18
191. Assign severity and an opaque incident ID; pause unsafe booking, sync, or notification workflows.
202. Classify the event as availability, authorization, delivery, data-integrity, policy, or suspected exposure.
213. Apply the smallest safe mitigation, verify recovery using a sandbox/read-only probe, and test a safe failure path.
224. Rotate/revoke credentials when exposure is possible and resume queues only after idempotency and destination checks pass.
235. Record the timeline, impact, mitigation, owner, and post-incident follow-up.
24
25## Output
26
27Produce a redacted incident receipt with severity, opaque ID, impact, mitigation, recovery verification, rollback/revocation decision, and follow-ups. Sensitive evidence stays in the approved incident store.
28
29## Examples
30
31For a simulated webhook outage, pause the staging worker and verify no milestone is replayed twice. Restore one synthetic canary event after health recovers, then resume only when the incident commander records the recovery evidence.
32
33## Severity Levels
34
35| Level | Definition | Response Time | Example |
36|-------|-----------|---------------|---------|
37| P1 - Critical | Full API outage or customs data loss | 15 min | Flexport API returns 5xx on all endpoints |
38| P2 - High | Partial failure or webhook delivery loss | 30 min | Webhook events not arriving, stale shipment data |
39| P3 - Medium | Degraded performance or rate limiting | 2 hours | 429 responses, elevated latency on tracking calls |
40| P4 - Low | Single endpoint issue or key rotation | 8 hours | One shipment query failing, API key nearing expiry |
41
42## Diagnostic Steps
43
44```bash
45# Check API health
46curl -s -o /dev/null -w "HTTP %{http_code}\n" \
47 -H "Authorization: Bearer $FLEXPORT_API_KEY" \
48 -H "Flexport-Version: 2" \
49 https://api.flexport.com/shipments?per=1
50
51# Check platform status
52curl -s https://status.flexport.com/api/v2/status.json | jq -r '.status.description'
53
54# Check rate limit remaining
55curl -s -D - -o /dev/null \
56 -H "Authorization: Bearer $FLEXPORT_API_KEY" \
57 -H "Flexport-Version: 2" \
58 https://api.flexport.com/shipments?per=1 2>/dev/null | grep -i "x-ratelimit"
59```
60
61## Incident Playbooks
62
63### API Outage
64
651. Confirm via status.flexport.com and diagnostic script above
662. Enable circuit breaker to serve cached shipment data
673. Notify downstream consumers that tracking data is stale
684. Queue failed requests for replay once API recovers
695. Monitor status page for Flexport resolution updates
70
71### Authentication Failure
72
731. Verify API key is set and not expired: check `$FLEXPORT_API_KEY`
742. Test with a minimal authenticated request (see diagnostics)
753. If 401: rotate API key in Flexport portal, deploy new key
764. If 403: check API key scopes match required permissions
775. Revoke compromised keys after new key is confirmed working
78
79### Data Sync Failure
80
811. Check webhook endpoint health — is your receiver returning 200?
822. Query `/webhooks` to verify subscription is active
833. Identify missed events by comparing last processed timestamp
844. Trigger manual sync for affected shipments via `/shipments` polling
855. Replay missed webhook events using Flexport's retry mechanism
86
87## Communication Template
88
89```markdown
90**Incident**: Flexport Integration [Outage/Degradation]
91**Status**: [Investigating/Identified/Mitigating/Resolved]
92**Started**: YYYY-MM-DD HH:MM UTC
93**Impact**: [N shipments affected / tracking data stale since HH:MM]
94**Current action**: [Circuit breaker active / manual sync running / key rotation in progress]
95**Next update**: HH:MM UTC
96```
97
98## Post-Incident
99
100- [ ] Document timeline from detection to resolution
101- [ ] Identify root cause (Flexport outage / key expiry / webhook endpoint failure)
102- [ ] Calculate impact: affected shipments, stale data duration, missed customs deadlines
103- [ ] Add monitoring for the specific failure mode that was missed
104- [ ] Implement or verify circuit breaker covers the failed endpoint
105- [ ] Replay any missed webhook events and reconcile data
106
107## Error Handling
108
109| Incident Type | Detection | Resolution |
110|--------------|-----------|------------|
111| Shipment tracking outage | 5xx on `/shipments` endpoints | Circuit breaker + cached data fallback |
112| Customs data sync failure | Stale customs docs, webhook gaps | Manual sync + webhook replay |
113| Webhook delivery loss | Missing events in processing queue | Verify endpoint, replay from last checkpoint |
114| API rate limiting | 429 responses, `Retry-After` header | Reduce concurrency, implement request queuing |
115| API key compromise | Unexpected 401 after working state | Rotate key immediately, audit access logs |
116
117## Resources
118
119- [Flexport Status](https://status.flexport.com)
120- [Flexport API Docs](https://developers.flexport.com)
121
122## Next Steps
123
124See `flexport-observability` for monitoring setup and alerting thresholds.