Resolved Issues — Bug Fix Summary
This page summarizes every customer-reported bug that was investigated and addressed during the May 2026 fix sweep. Each section explains the issue in plain language and shows a video of the fix working in the live system.
If a video doesn’t appear inline below, click the link underneath it to download and watch.
✅ May 2026 — Lea Wroblewski feedback (Schedule J Continue + Back button)
Lea reported two blockers (May 28) against the test server:
- “It looks like you cannot get past the dependent page — the Continue button will not work.”
- “If you accidentally select ‘yes’ for a secured debt, you cannot go back and change it.”
Both are now fixed and deployed. Verified by tests/lea-dependent-bug.spec.ts (strict-validator regression — the bug-reproduction proof) and demonstrated in the two videos below (tests/lea-demo.spec.ts).
What was happening (#1 — Continue silently blocked on Schedule J)
The Schedule J “Describe your household” page had a “Does debtor 2 live in a separate household?” field that’s only shown for joint cases. For a single filer the field is hidden — but the docassemble app’s form validator was treating the hidden field as still required, which silently blocked the Continue button with no visible error. This is the same root cause class as customer bugs #54 / #56 / #57.
Fix: mark the conditionally-shown field required: False so the validator stops blocking submission when it’s hidden. Same defensive fix applied to the means-test “household and dependents” page’s separated-status field.
Download lea-2026-05-schedule-j-continue.mp4
The video drives a single-filer interview to the “Describe your household” page, answers the two visible yes/no questions, and clicks Continue using the strict validator path (the same submission the real browser uses — no test-side :hidden override). The form advances to “Estimate your ongoing monthly expenses”. Before the fix, the same click silently hung on this page. The bug reproduction (reverting the YAML change, running the strict test, observing the hang) is captured in PR #98.
What was happening (#2 — no in-page Back button)
The interview was configured with navigation back button: false and no per-question Back button, so users had no in-page way to return to a previous question. After accidentally clicking “Yes” on the secured-debt gate, the only escape was the browser’s Back button.
Fix: enabled question back button: True globally. Every page now has an in-page Back button next to Continue.
Download lea-2026-05-back-button.mp4
The video reproduces Lea’s scenario: reach the “Do any creditors have claims secured by your property?” gate, click “Yes” (the accident), see the secured-claim details page with the new Back button, click Back to return to the gate, click “No” instead, and watch the interview move past secured creditors.
Testing & verification
- Strict-validator regression —
tests/lea-dependent-bug.spec.tsreproduces the silent-block bug deterministically. With the YAML fix reverted, the test fails (heading stays on “describe your household”); with the fix applied, it passes (advances to “Estimate your ongoing monthly expenses”). Both single-filer (0 dependents) and single-filer (1 dependent) paths are covered. - No-regression check — the existing
tests/dependents-main-flow.spec.tsend-to-end happy path still passes (2.5 min). - Demo recordings — the two videos above are produced by
tests/lea-demo.spec.ts, run against the deployedfix/lea-dependent-page-2026-05branch.
Out-of-scope but flagged for follow-up
- The broader YAML audit shows 324 conditional fields without
required: Falseacross the question files. Only the two on Lea’s reported path are fixed in this PR; the rest are latent instances of the same trap. - Separately observed during this investigation: the means-test “Identify any exemptions from Presumption of Abuse” page does not advance Continue when all three yes/no answers are “No” (the consumer-debts path). The existing test suite uses
non_consumer_debts=trueso it bypasses this. Worth a separate investigation — likely affects real users with primarily consumer debts.
✅ May 2026 — Clinic staff review (Roxanne) feedback
A second clinic review (May 2026) produced a fresh batch of notes. The items below are fixed, deployed, and covered by automated tests (tests/roxanne-feedback-fixes.spec.ts, plus the end-to-end scenario suite for no-regression).
Download roxanne-feedback-2026-05.mp4
Property (Schedule A/B)
- Ownership interest is now a pick-list — “Describe the nature of your ownership interest” offers Fee Simple, Joint Tenant, Life Estate, Equitable Interest, Future Interest, Tenancy by the Entireties, and Tenants in Common (and still lets you type a custom value).
- “Other information about item” is no longer required.
- Vehicles: “mortgage/loan” reworded to “loan or lien”; the confusing “State” field is relabeled “State where the vehicle is registered or titled” and made optional.
- Collectibles can now claim the household-goods exemption (not just wildcard).
- Contingent/unliquidated claims can claim more than wildcard (e.g. wages for back pay, structured settlement for personal injury). (Attorney review flagged in code for the per-claim mapping.)
- Farm/Commercial Fishing question text corrected (it previously read “business related property”).
Exemptions (Schedule C)
- Wildcard citation corrected to
Neb. Rev. Stat. § 25-1552— the previous§ 25-1552(1)(c)cited a subsection that does not exist (verified against the live Nebraska statute; final wording to be confirmed by the attorneys). - Exemption-set choices relabeled to “State exemptions” / “Federal exemptions” with a plain-language explanation of the “federal nonbankruptcy” distinction.
- Homestead exemption is now actually asked — the review previously showed “Claiming Homestead Exemption: No” regardless of input, because the value was hard-coded.
- Exemption summary now counts full (100%) claims. It previously reported “No exemptions have been claimed yet” even after you claimed exemptions, because a 100% claim never captured a dollar value; it now falls back to the property’s owned value.
Creditors (Schedules D/E/F)
- Schedule E priority debts are discoverable — the gate now clearly covers tax debt, child support, and alimony, and the “type of priority claim” picker offers those explicit options (mapped to the correct statutory categories).
- The clinic creditor library is seeded with the IRS and the Nebraska Department of Revenue, and selecting a tax creditor now files it on Schedule E (priority) rather than Schedule F. (Mailing addresses flagged for staff confirmation.)
- Co-signers — the “Codebtors” section is relabeled “Co-signers (codebtors)” with a clearer explanation.
Statement of Financial Affairs (Form 107)
- Prior address — answering “No, I haven’t lived elsewhere” no longer demands an address; the address is required only when you say you did live elsewhere.
- Payments over $600 — the “any other creditors?” prompt now reads “Any other creditors paid over $600 in the past 90 days?”
- Charitable contributions — consolidated to a single value box.
Navigation & flow (second change set)
- Section order — Secured Creditors, Unsecured Creditors, Contracts & Leases, and Co-signers now come right after Exemptions (standard schedule order), instead of after Income/Expenses/SOFA. This also resolves most of the “I couldn’t get to those sections” trouble. (Order pending Lea’s confirmation.)
- Leases no longer drop you into the SOFA section — personal-property leases are gathered in their own Statement-of-Intention step.
- Exemptions are no longer re-entered — claiming an exemption on a property now auto-fills Schedule C, so you’re not asked “Do you have any property to claim as exempt?” and made to type everything again.
-
No more stray “claiming an exemption” prompt — for less-common items (trusts, copyright/IP, etc.), the second exemption question no longer appears after you’ve said you have no interest.
- Exemptions now follow the filing state — per the clinic’s decision, a Nebraska filing shows Nebraska exemptions and a South Dakota filing shows South Dakota exemptions (this supersedes the earlier “show both states” behavior from issue #37).
- The “do any creditors have nonpriority unsecured claims?” gate is removed — the interview goes straight to the unsecured-creditor list.
- Filers can save a creditor to the clinic’s shared library from any creditor screen (opt-in).
Exemption amounts, joint-filing stacking & dependents (third change set — May 2026)
- Nebraska exemption caps updated to the current (2023 CPI-adjusted) amounts — motor vehicle and tools of the trade are now $5,970 (was $5,000) and household goods is $3,582 (was $3,000), per Neb. Rev. Stat. § 25-1556(2), which adjusts these limits for inflation. (Source: Roxanne Alhejaj, Legal Aid of Nebraska. The statute re-adjusts in 2028 — flagged in code for annual review.)
- Exemption caps now “stack” for joint filings — because each debtor in a joint case is entitled to a separate set of exemptions (11 U.S.C. § 522(m)), the Schedule C summary now doubles the cap for a two-debtor case (e.g. $240,000 homestead and $11,940 on motor vehicles), with a note explaining why. Single filings are unchanged.
- Dependents can be added without requesting a fee waiver — the “Describe your household / dependents” screen now appears in the normal Schedule J flow for every filer. Previously the only place to enter dependents was inside the fee-waiver application, so a filer who paid the fee never reached a dependents menu.
Complete walkthrough in the new section order
A full single-filer petition — real estate, a vehicle with a loan, exemptions, creditors, leases, co-signers — run start to finish in the new order (creditors right after exemptions), reaching the document-generation page cleanly.
Download roxanne-complete-walkthrough-2026-05.mp4
Testing & verification
These changes ship with automated tests, and the full suite was run for regressions:
- New tests:
tests/roxanne-feedback-fixes.spec.ts(ownership pick-list, corrected § 25-1552 citation, State/Federal relabel) andtests/test_exemption_totals.py(the exemption-summary fix; extended with the 2023 CPI-adjusted amounts and joint-filing cap stacking). - Third change set verification (amounts / stacking / dependents): the extended
test_exemption_totals.pyunit tests pass in-container, and the end-to-end single-filer and joint-couple (2 dependents) scenarios both run start-to-finish to the document-generation page — the joint run exercises both the dependents-enumeration screen and the stacked exemption caps. - No-regression run: the committed Playwright suite was run one worker per server across two servers — so there’s no container contention to produce false failures: 111 passed, 7 failed.
- Of the 7 failures: one was a test that hard-coded the old section order (updated in PR #89); the other six are pre-existing test-harness limitations — confirmed by running them against the prior release, where they fail identically. None are caused by these changes.
- The end-to-end scenario walkthroughs (single filer, joint couple, homeowner with car loan, amended/complex case) all reach the document-generation page in the new section order.
✅ End-to-end walkthroughs (covers most of the petition)
Complete petition — start to finish
A non-amended single-filer petition runs cleanly from the intro screen through to the document-generation page, with no surprise blockers.
Download 04-complete-petition.mp4
Navigation past previously-blocking sections
Covers the sections you previously reported as “dead in the water” — vehicle exemptions, secured creditors, income deductions, codebtors community-property, etc.
Issues covered: #53, #54, #56, #57, #59
Download 01-navigation-success.mp4
Validation actually enforces
Shows the system rejecting invalid input it used to accept (case-number format, address fields).
Issues covered: #63, #68, #74, #80
Download 02-validation-enforcement.mp4
Cross-section consistency check
The final review page now warns you if data conflicts between sections (e.g. fee-waiver income doesn’t match Schedule I).
Issues covered: #58, #76, #77, #78
Download 03-cross-validation.mp4
🎯 Issue-by-issue proof
#53 Vehicle Motor-Vehicle exemption single-claim
Bug: Claiming the Motor Vehicle exemption on two vehicles crashed the form.
Fix: The system now blocks the second claim with a clear validation error pointing to the first vehicle. The hidden-but-required exemption_value field that was silently blocking Continue is also fixed.
Demonstrated in the Navigation past previously-blocking sections video above.
#54 Secured creditors section
Bug: You couldn’t get past the secured creditors page no matter what you filled in.
Fix: The property_action_other and codebtor fields (which appear conditionally) were marked required-but-hidden, so the form validator silently blocked Continue. Marked them required: False so they only become required when actually shown.
Demonstrated in the Navigation past previously-blocking sections video above.
#55 Means Test thresholds
Bug: Means Test was using “150% of poverty level” thresholds (~$37k) instead of the actual U.S. Trustee Program median-income tables (~$103k for a NE family of 3).
Fix: Built a hard-coded table in objects.py with current DOJ median-income values for NE and SD, and the 122A abuse-presumption math now uses that table.
⚠️ The dollar values should be attorney-verified periodically against DOJ’s published table (refreshes ~6 months apart).
#56 Income deductions “No” no longer blocks
Bug: Answering “No” to “Do you have any deductions to claim?” silently blocked Continue.
Fix: Same class of bug as #54 — the per-deduction detail fields are required-but-hidden when you answer No. Marked them all required: False.
Demonstrated in the Navigation past previously-blocking sections video above.
#57 Other monthly income “No” no longer blocks
Bug: Leaving the “Other monthly income” page unchanged silently blocked Continue.
Fix: Same root cause as #54 / #56. specify_monthly_income and other_monthly_amount are now required: False under their show if.
Demonstrated in the Navigation past previously-blocking sections video above.
#58 Fee waiver reliability (umbrella for #76/#77)
Bug: Fee waiver re-collected property and income, accepted made-up numbers, and the cross-validation code that was supposed to catch this had been broken (referencing an undefined variable).
Fix:
- Fixed the final-review page so cross-validation warnings actually display.
- Added a hard-block on the fee-waiver real-estate value if it differs from Schedule A/B by more than 10%.
- Pre-fills the fee-waiver real-estate fields from Schedule A/B so the user doesn’t re-enter values.
Demonstrated in the Cross-section consistency check video above.
#59 Codebtors community-property “No” no longer blocks
Bug: Answering “No” to the codebtors community-property question silently blocked Continue.
Fix: Marked the spouse-related detail fields required: False under their show if.
Demonstrated in the Navigement past previously-blocking sections video above.
#60 Pre-filled data confusing for clients
Bug: Hardcoded pre-fills (zeros, default selections) confused users — they couldn’t tell what was their own data versus a default.
Fix: Removed all hardcoded data defaults from Forms 2030 (attorney disclosure) and 122A (means test). The only pre-filling that remains is when a value pulls from earlier user-supplied data (e.g. Schedule I income → 122A income summary). Yes/No navigation defaults were kept because they’re flow gates, not data.
#61 Marital status — date fields hidden when “No”
Bug: Answering “No” to “have you lived elsewhere in the last 3 years?” still displayed five sets of empty date fields.
Fix: Every date and address field on that page is now properly gated behind show if: financial_affairs.lived_elsewhere.
#62 Debtor 2 questions hidden for individual filers
Bug: Filing as an individual still surfaced “Debtor 2” questions throughout the petition.
Fix: When the filing status is individual, the debtor list is now limited to one entry, and downstream blocks gate on len(debtor) > 1.
#63 Address validation actually validates
Bug: City fields accepted random text like “abc123xyz”, state fields accepted things like “Denial”, ZIP fields accepted 4-digit input.
Fix: Added centralized city and ZIP validators (is_valid_city, is_valid_zip in objects.py) wired into the lawsuits page, the levies page, the marital-residence page, the main debtor address page, the real-property page, and the secured-creditors page. State fields are now dropdowns of US states everywhere.
#64 Unsecured creditors — party fields hidden when “No”
Bug: Selecting “No” to “do others need to be notified?” still rendered three blank party-entry blocks.
Fix: All party fields are now gated behind show if: ...has_notify and marked required: False.
#65 Schedule I/J — “at time of filing” wording
Bug: Payroll-deduction question asked for “the previous month” instead of the more legally appropriate “at the time of filing”.
Fix: Rewrote the question titles to “List expected monthly payroll deductions at the time of filing” with sub-text explaining how to handle one-off months.
#66 No case number when not filing amended
Bug: Even after answering “No” to “amended filing?”, the form still asked for a case number.
Fix: The case-number question is now skipped entirely on the non-amended path.
#67 Duplicate contact information
⏸ Awaiting your input. The current question YAML has only one collection point for debtor name / contact. If you can share the screen URL or heading where the duplicate appeared, we can identify it and fix it.
#68 Real-estate ZIP requires real ZIP format
Bug: Property ZIP accepted fewer than 5 digits.
Fix: The real-estate ZIP field now uses the centralized digit-only ZIP validator. Inputs like “1234” or “abcde” are rejected.
Demonstrated in the Validation actually enforces video above.
#69 Updated exemption amounts
⏸ Awaiting attorney input. You’ve emailed them for the current NE/SD exemption dollar values; the structure is in place — the table is in docassemble/BankruptcyClinic/objects.py and feeds the new #70 summary screen and the cross-validation warnings. Drop the new values into that table whenever they arrive.
#70 Exemption overview screen
Bug: When you went over the wildcard exemption limit, there was no easy way to review what you’d already claimed.
Fix: Added a new “Exemption summary” screen that appears right after Schedule C. It aggregates every claimed exemption by statute, shows running totals next to the statutory cap, and flags any row that exceeds the cap.
#71 Money/Property exemption bifurcation
Bug: Tax refunds couldn’t have two exemption amounts the way household goods could.
Fix: Added *_exemption_value_2 and *_exemption_laws_2 fields to the tax-refund and family-support entries in the “Money or Property Owed to You” section, matching the household-goods pattern. The PDF rendering emits a second row when populated.
#72 Theft/Disaster — no description required on “No”
Bug: Selecting “No” to “did you experience theft or disaster losses?” still required a description.
Fix: The description and related fields are now gated behind show if: financial_affairs.has_disaster with required: False.
#73 Financial Statements — no date required on “No”
Bug: Selecting “No” to “have you prepared financial statements?” still required a date.
Fix: Same fix pattern as #72.
#74 Case number format validation
Bug: The case-number field accepted any random text.
Fix: Added a regex validation (D:YY-bk-NNNNN, e.g. 8:23-bk-12345) that rejects malformed input and tells you the expected format.
#76 Fee-waiver income vs Schedule I
Fix: The cross-validation check (sum of Schedule I income vs family.you_income) now actually surfaces — see the Cross-section consistency check video above.
#77 Fee-waiver property values vs Schedule A/B
Fix: Added a property-value cross-check, plus the fee-waiver real-estate page now pre-fills from Schedule A/B and hard-blocks save if the user enters a value that diverges by more than 10%.
Demonstrated in the Cross-section consistency check video above.
#78 Codebtors community-property vs SOFA
Fix: Cross-validation now flags when the codebtors-section community-property answer disagrees with the SOFA answer.
Demonstrated in the Cross-section consistency check video above.
#79 Statement of Intention — no re-entry of secured debts
Bug: Form 108 (Statement of Intention) made you re-enter creditor names and property descriptions you’d already entered on Schedule D.
Fix: Refactored Form 108 to read directly from the Schedule D creditor list (prop.creditors). The PDF is now populated from there. No re-entry.
#80 Address consistency
Fix: Cross-validation checks ZIP format consistency on both the primary and mailing addresses; flags get surfaced on the final review page.
Note: If by “different address” you meant a different page where this happened, please point me at the specific screen — I only found one debtor-address collection point in the question YAML.