How to Keep Shipping When AI Coding Tools Go Down
The Short Answer
Resilience is configured before the outage, not during it. Three things carry almost all the value: a second Git remote, a local model you have already downloaded and tested, and a rule that stops your agents the moment an API starts failing. Everything else is refinement.
The August 17, 2026 GitHub outage — which took Copilot down with Actions, PRs and SSO for several hours — made the cost of skipping this concrete for a lot of teams.
Step 1: Stop the Agents (First, Always)
Autonomous agents are the worst thing to leave running during a partial outage. They don’t recognise degraded infrastructure — they see a failed call and retry.
The damage compounds three ways: wasted spend as retries consume tokens against a doomed request, corrupted work state as half-pushed branches and partially-applied edits accumulate, and a cleanup queue of failed CI runs and orphaned PRs you’ll be untangling after recovery.
Completion criterion: every background and cloud agent is halted, and you know which ones stopped mid-task.
Step 2: Confirm Scope Before Changing Anything
Check the provider’s status page and identify which layer failed. This determines your options:
| Failure | Still works | Your move |
|---|---|---|
| Code host down | Local Git, AI assistant | Commit locally, push to mirror |
| Model API down | Git, CI, editor | Switch to local model |
| Auth/token layer down | Model itself is fine | Re-auth, or use a different provider key |
| Editor cloud features down | Local editor, Git | Work local-only |
The August 17 incident is a good example of why layer matters: Copilot’s model providers stayed operational the whole time — the break was in GitHub’s own service layer. Switching model vendors would have fixed nothing; switching assistants would have.
Completion criterion: you can name the failing layer and what remains usable.
Step 3: Fall Back to a Local Model
This only works if you did it in advance. Download and verify a local model now, while everything is healthy:
# Ollama — verify it actually answers before you need it
ollama pull qwen3.8:27b
ollama run qwen3.8:27b "write a unit test for a debounce function"
Good 2026 candidates in the run-on-a-laptop class: Qwen3.8-27B (released August 14, 2026), Meta Muse Glimmer 30B (August 10, 2026, tuned for autonomous tool use on a single consumer GPU), and Nemotron-3.5-Lightning. On 32GB of RAM these are genuinely useful for completion, test generation, refactoring and explanation — not frontier-quality reasoning, but far better than nothing. See the local open-weight comparison.
Point your editor at the local endpoint ahead of time and confirm the config works. An untested fallback is not a fallback.
Completion criterion: a local model answers a real coding prompt through your editor, with the network to your usual provider blocked.
Step 4: Keep a Live Second Git Remote
Git is distributed — your clone already contains full history. An outage takes away the shared coordination point, not your code.
git remote add mirror [email protected]:you/project.git
git push mirror --all && git push mirror --tags
Two rules make this real rather than theatrical: push to both on every significant merge (a pre-push hook or a scheduled mirror job beats discipline), and verify the mirror can be cloned occasionally. A mirror last updated in March is a false sense of security.
If you’re evaluating where the mirror should live, Origin, GitHub and GitLab compared covers the trade-offs. The important property is simply that it is a different failure domain from your primary.
Completion criterion: a fresh clone from the mirror builds and passes tests.
Step 5: Work the Offline-Capable Queue
Every team has work that needs no external service. Keep it identified so an outage becomes a schedule change rather than a stoppage:
- Reading and understanding unfamiliar code
- Writing tests against existing behaviour
- Local refactoring with a local test run
- Documentation, ADRs, spec writing
- Local profiling and performance work
- Reviewing diffs already fetched into your clone
Commit locally throughout. Push when the host returns.
Completion criterion: nobody on the team is blocked waiting for a status page.
Step 6: Reconcile Deliberately After Recovery
Recovery is where the second wave of damage happens. Work through it in order:
- Push local commits to the primary, then re-sync the mirror.
- Audit stopped agents — find half-applied edits and orphaned branches before restarting anything.
- Re-run failed CI rather than assuming green from before the incident.
- Check for duplicates — retrying agents frequently create near-identical PRs.
- Restart agents one at a time, confirming each is healthy.
Completion criterion: CI is green on the primary, no orphaned branches remain, and agents are back under supervision.
The Standing Configuration
Set once, benefit every time:
| Control | Setup cost | What it buys |
|---|---|---|
| Second Git remote + auto-mirror | ~15 min | Code host outages become inconvenient |
| Local model downloaded and tested | ~30 min | Model API outages become invisible |
| Documented agent kill switch | ~10 min | Prevents retry-storm cleanup |
| Status page alerts for your stack | ~10 min | You find out before your team does |
| Offline work queue, kept current | ongoing | Outage costs schedule, not output |
Under two hours of setup. The teams that had it on August 17, 2026 kept shipping.
Last verified: August 18, 2026.