41 failures waiting for a fix

Something broke. Find out why.

Step into a failing system, follow the evidence, make the smallest safe change, and prove you fixed the right thing.

Start here · Teaching Mode on

Your first green build starts here.

Reproduce a pagination failure, trace the off-by-one error, patch it, and verify the fix with a step-by-step coach.

Start with a guided lab
Core labs · 41 playable

Debug the whole codebase.

Reproduce a failure, inspect unfamiliar code, make the smallest fix, and prove it survives visible and hidden checks.

01 Fail02 Trace03 Patch04 Pass
Explore core labs

Practice library

Choose your next failure.

Search by symptom, then pick the failure that feels worth chasing. Every lab starts broken and ends with proof that your fix works.

4of 41 labs
Difficulty
Source
Open sourceeasy
01

HTTP method casing mishandled for non-standard verbs

A Request constructor accepts a method option. The library normalizes the six standard HTTP methods (DELETE, GET, HEAD, OPTIONS, POST, PUT) to uppercase regardless of input casing, while preserving every other method string exactly as supplied. Currently, the casing rule applies too broadly, altering method names that should pass through untouched.

API & Request FlowOpen lab
Open sourceeasy
02

Repeated trailing slashes in base URL

When a base URL like 'https://api.github.com///' is joined with a path like '/users', the resulting URL contains an extra slash between the host and the path instead of a single separator.

API & Request FlowOpen lab
Open sourcemedium
03

Zero-value entries-read argument omitted from XGROUP tokens

A caller passes the ENTRIESREAD option set to 0 to XGROUP CREATE or XGROUP SETID. The argument builder should emit the ENTRIESREAD keyword and a '0' token. Instead, when the option value is exactly 0, the trailing ENTRIESREAD and '0' tokens are missing from the produced array.

Data & SerializationOpen lab
Open sourceeasy
04

App.render rejects null and undefined options values

A caller invokes `app.render(viewName, options, callback)` and expects the callback to deliver the rendered template string even when `options` is `null` or `undefined`. The callback does not deliver the expected rendered output for those cases, while rendering with a normal options object continues to succeed.

Config & EnvironmentOpen lab