# Fallback Plan (Ethereum Interactive Lecture)

Owner: instructor
Reference: ../../prd.json story D7

This document covers 5 failure modes. Each entry has reproduction steps, a swap point in the timing sheet (D6), the post-swap success path, and a time budget for the swap.

## Failure mode 1: Lab machine blocks Remix in the browser

**Reproduction.** Open a fresh browser session on the suspect lab machine and visit https://remix.ethereum.org. If the page is blocked by IT policy, the URL fails to load or shows a corporate filter notice. Test BEFORE class with one of the lab machines.

**Swap point.** Before minute 60 (workshop step 1 entry).

**Post-swap success path.** Instructor projects ONE Remix session on the main screen. Students follow along visually but do not execute on their own laptops. They each fill in the lab guide checklist in writing and observe the deploy. Artifact for these students becomes "I watched a deploy and recorded the contract address from the projected screen". Post-quiz still scorable; security brief still applies.

**Time budget.** 0 minutes (swap was pre-class). If discovered mid-class, 2 minutes lost while the instructor switches to projector mode.

## Failure mode 2: Classroom internet outage

**Reproduction.** Disable wifi on the instructor laptop AFTER Remix is loaded. Confirm that Remix VM (in-browser chain) still compiles and deploys without network.

**Swap point.** Anywhere after minute 60.

**Post-swap success path.** Remix VM is fully offline once the page is loaded. Students who already have Remix open continue normally. Students who have not yet opened Remix are blocked: instructor demos on the (cached) projector and announces that the workshop becomes a watch-along. Post-quiz becomes take-home (paper copy in instructor kit).

**Time budget.** 1 minute to verify everyone's tab is loaded; 0 minutes lost otherwise.

## Failure mode 3: Sepolia anchor demo fails live

**Reproduction.** Open the planned live Sepolia URL during dry-run. If Etherscan rate-limits, the instructor wallet is drained, or the page returns 5xx, the live demo fails.

**Swap point.** At minutes 35 to 38, the anchor-demo slot.

**Post-swap success path.** Source of truth is the pre-recorded video at ./sepolia_anchor_assets/anchor_demo.mp4 plus the screenshot at ./sepolia_anchor_assets/etherscan_view.png. Instructor plays the video instead of attempting the live page. The video is recorded the evening before each class delivery (see ./sepolia_anchor_assets/README.md).

**Time budget.** 0 minutes (the video runs in the same 3-minute slot as the live demo would).

## Failure mode 4: MetaMask level-up install fails for individual students

**Reproduction.** Lab machine browser blocks MetaMask Chrome extension install or the student's corporate browser refuses extensions.

**Swap point.** Inside the optional Sepolia level-up, minutes 76 to 80.

**Post-swap success path.** That individual student stays on the Remix VM primary path. No class-wide impact. The level-up is OPTIONAL by design; failure is fully isolated.

**Time budget.** 0 minutes class-wide. The student does not lose their primary artifact.

## Failure mode 5: Colab notebook fails to install web3.py on default Colab Python

**Reproduction.** Open the notebook on Colab on the morning of class. Run all cells. If web3.py fails to install (rare but possible if pip wheels are temporarily broken or web3.py releases a breaking change), the take-home demo is blocked.

**Swap point.** At the 2-minute end-of-workshop instructor notebook demo (minutes 81 to 83).

**Post-swap success path.** Instructor demos by reading the notebook code on screen and saying "imagine the output". Students take the notebook home with the same content. The instructor commits a fixed-pin update before the next class delivery.

**Time budget.** 0 minutes class-wide; demo is descriptive instead of executed.

## Internet outage explicit verification

The Remix VM in-browser chain runs ENTIRELY in JavaScript inside the loaded page. Once the Remix tab is loaded, no further network call is required to compile, deploy, or read state on the in-browser chain. To verify:

1. Open https://remix.ethereum.org in a fresh tab and let it fully load.
2. Disable network on the laptop (airplane mode).
3. Paste HelloWorld.sol, compile, deploy to Remix VM, read greeting.
4. All four steps succeed.

Run this test as part of D12 dry-run sign-off.

## References

- Timing sheet: ./timing_sheet.md
- Anchor assets: ./sepolia_anchor_assets/
- Dry-run signoff: ./dryrun_signoff.md
