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.
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 labDebug the whole codebase.
Reproduce a failure, inspect unfamiliar code, make the smallest fix, and prove it survives visible and hidden checks.
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.
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.
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.
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.
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.