OTA → v0.6.0
LatestOver-the-air update
Bundle 019fab82
Runs on build iOS 17 · Android 12
Changed
- Once you've joined your city's leaderboard, "Your impact" shows your rank at the top and links straight to the board. Changing your display name or leaving now lives on the leaderboard page itself.
OTA → v0.6.0
Over-the-air update
Bundle 019fab61
Runs on build iOS 17 · Android 12
Fixed
- My reports no longer hides your most recent reports when your history is long. The list is ordered newest-first before it's capped, so the newest always show; older ones held back for speed can be revealed with one tap.
OTA → v0.6.0
Over-the-air update
Bundle 019fab26
Runs on build iOS 17 · Android 12
Changed
- Diagnostic log export now also captures on-device report/draft state, for debugging.
Fixed
- Reports DC 311 only returns to your signed-in account (e.g. dockless vehicle complaints) can now be added by number.
OTA → v0.6.0
Over-the-air update
Bundle 019faac2
Runs on build iOS 17 · Android 12
Added
- Settings → Diagnostics now has a "Share diagnostic log" button — export the recent on-device event log (already scrubbed of location, addresses, and contact info) as a file to send to the developers when reporting a problem, so an issue can be diagnosed from the full trace rather than guesswork.
OTA → v0.6.0
Over-the-air update
Bundle 019fa956
Runs on build iOS 17 · Android 12
Added
- On the "Filed" screen you can now tap to copy your report number — a Copy button sits right next to it, so you can paste the number into an email or note without retyping it. Thanks to Kyle G. for the suggestion.
Fixed
- Photos now upload far more reliably, especially on cellular. Photos are resized before uploading (they were being sent at full resolution — several megabytes — which often stalled or timed out on a mobile connection and left a report stuck as "Upload timed out"). Uploads are now a fraction of the size and usually finish in a second or two, and a report that was previously stuck will go through on Retry now. Thanks to Kyle G. for the report.
OTA → v0.6.0
Over-the-air update
Bundle 019fa6b9
Runs on build iOS 17 · Android 12
Added
- Bulk collection now shows your pickup date before you submit. For requests that schedule a collection (Residential Bulk Collection and Scheduled Yard Waste), snap311 now shows the estimated collection date right on the form — and prominently on the "Filed" screen — so you know when the pickup will happen instead of finding out only after submitting. (Previously the app submitted straight through and the date appeared only on the finished ticket.) Thanks to Bill F. for the report.
OTA → v0.6.0
Over-the-air update
Bundle 019fa152
Runs on build iOS 17 · Android 12
Fixed
- Service instructions on the report form now display correctly: text like "Service Limitations & Frequency" no longer shows raw codes such as &, and links in a service's instructions are now tappable (previously the link text showed but the link itself was lost) — handy when 311 points you to more information or a different request type.
OTA → v0.6.0
Over-the-air update
Bundle 019f8d75
Runs on build iOS 17 · Android 12
Fixed
- Phone numbers in Your info are now auto-formatted to (202) 555-1234 (a messy-but-valid number — extra characters, a leading +1 — is cleaned up for you), and a genuinely-incomplete number is caught with a clear message instead of letting the report fail after you submit. Previously a malformed phone was rejected by 311 and the app kept retrying it as if the service were down.
v0.6.0
Store build
Build iOS 17 · Android 12
Added
- Multiple cities. snap311 now works with more than one 311 system. On first launch you choose your city (Washington, DC or Alexandria, VA), and you can switch anytime from Settings. If your location looks like you're in a different supported city, the app offers to switch. Existing users stay on Washington, DC with nothing changed.
- Alexandria, VA (Alex311) support — report 311 issues, attach photos, and track them, just like DC.
- Sign in to your Alexandria account to link reports and skip re-entering contact info (via the City's login).
- City leaderboard. Opt in (with a display name) to rank on your city's public leaderboard, and browse it right in the app from Your impact. Your rank is your civic points — reports you file in the app, plus badge, streak, and milestone bonuses. Opting in is per city with its own name, so you choose exactly which boards you appear on, and display names are unique per city (the app checks availability before you join). Joining requires sign-in.
Changed
- Your reports, drafts, saved categories, contact info, and civic points, badges & streaks are now kept separately per city, so switching never mixes one city's data with another's. Your existing Washington, DC progress is untouched.
- Each city has its own home banner color so you can tell at a glance which city you're reporting to.
- Your impact (civic points & badges) moved off the home screen into My reports, so the home screen stays focused on filing a report.
- "Nearby reports" works in cities without a public history archive (like Alexandria) by showing recent reports from the live feed, with a note that the map is limited to recent activity.
OTA → v0.5.0
Over-the-air update
Bundle 019f725a
Added
- Swipe a report to archive it — swipe farther to delete. On "My reports," swipe a report left: the strip behind it shows Archive, turning red to Delete as you pull farther, so you always see what a release will do. A haptic tap tells you you've reached Archive, and a distinct double-tap that you've reached Delete — let go to run it, no button press. Works on any report (open or closed); swipe an archived one to Unarchive it. Separate from the automatic 7-day archiving, so you can stash anything on demand and pull it back.
- A map of your own reports on "My reports." The screen now opens with a map pinning every report you've filed, colored by status (open, closed, canceled). Open reports show a completion ring that fills green→amber→red as their DC due date approaches — the same at-a-glance gauge as the "Nearby reports" map. Tap a pin to open that report. A "Show archived" control on the map reveals your long-closed reports on the map and in the list together.
Changed
- "My reports" title bar tidied up. Adding a past report by ID (+) and exporting all reports (download icon) moved into the title bar, making room for the new map.
- Tapping a report photo now opens it full-screen in the app instead of bouncing you out to the browser to view or download. Works for your own photos and photos DC attached; tap anywhere (or ✕) to close.
- Clearer "update" badge on your reports. When DC 311 posts an update to a report (a status change or a comment), the list now shows a chat-bubble "Update" badge instead of a vague "New," so it's obvious what changed.
Fixed
- "Report this issue again" no longer makes you re-validate the address. The resubmitted report carried the address text but left Submit disabled until you tapped "Validate." It now reuses the original report's confirmed location, so you can review and submit right away.
OTA → v0.5.0
Over-the-air update
Bundle 019f6da2
Added
- "Report this issue again" now prefills your original answers. When a request is closed but the problem isn't actually fixed, reporting it again brings back the answers you filled in the first time (for reports filed on this device), so you can just review and resubmit instead of starting over.
- Exact location is added automatically for off-address reports. When your photo was taken well away from the street address it matched — a can in a park, a scooter in a lot — the app now attaches your exact coordinates on its own, so you don't have to open "Pin on map." A note shows how far off the address was, with a one-tap "Remove" if you don't want it.
- Tap the scanner to refocus. If a vehicle ID or tag looks blurry while scanning, tap anywhere on the camera to force it to focus again — a quick manual fallback when autofocus settles on the wrong spot.
Fixed
- Tapping the "report not sent yet" banner now works from My reports. The orange banner did nothing when tapped from the My reports screen itself; now it scrolls to and briefly highlights the report that hasn't been sent, wherever you tap it from.
- Editing a long description keeps the field in view. Re-opening the keyboard on a description with a lot of text used to scroll the box out of view, so you couldn't see what you were typing. It now stays put.
- Scanning a vehicle ID or tag up close now focuses. On iPhones with more than one rear camera, the scanner switches to a lens that can focus at close range, so a dockless tag or printed code held a few inches away comes in sharp instead of staying blurry.
OTA → v0.5.0
Over-the-air update
Bundle 019f68b3
Added
- A heads-up before you file a request DC 311 would bounce. Some report types quietly route certain answers elsewhere — for example, "Roadway Markings / Pylons" is for existing faded or damaged markings, so asking for brand-new markings there gets sent back. Now, when you pick an answer like that, the app shows a note explaining it and offers a one-tap switch to the right request (here, Traffic Safety Input) — before you submit, instead of after a rejection.
Fixed
- Rejection messages from DC 311 are readable again. When DC 311 turns down a report (for example, some Roadway/Markings requests), its explanation is now shown as plain text instead of raw website code — you'll see "Please submit a Roadway/Markings Service Request" rather than a line full of <a href=…> tags. Thanks to the anonymous feedback submitter who reported this.
v0.5.0
Store build
Added
- Save a report as a one-tap "frequent request." Fill out a report, tap "Save as frequent request," and it becomes a shortcut on your home screen — and, on iPhone, in the app icon's long-press menu — that reopens the report pre-filled. Manage them on the new Manage screen: drag to reorder, rename, change their saved options, or delete. Power users can also share a saved request as a branded, printable QR poster ("Scan to report") to stick on a recurring problem spot.
- Export all your reports to a spreadsheet. "My reports" now has an "Export all (CSV)" option, alongside the existing per-report share.
- Quick Capture from your home screen. File a report without opening the app first. On Android, add the new "Report now" home-screen widget; on iOS, long-press the app icon and choose "Report now." Either one drops you straight into the camera-first capture flow.
- Suggested categories when you describe a problem. In the category picker, type what's going on in plain words ("couch dumped on the sidewalk", "street light out all night") and a "Suggested" section surfaces the most likely 311 request types above the keyword results — so you don't have to know the official category name. It runs entirely on your device on iPhones with Apple Intelligence; on other devices the regular keyword search (which now also matches each type's plain-language summary) handles it.
Changed
- The map pin's "add exact location" option is clearer. When your dropped pin is far from the nearest street address, the option to attach the exact coordinates is now a highlighted card that explains what it's for.
- Your contact details are now stored more privately. Your saved name, email, and phone are kept in the device's encrypted keychain and excluded from device backups.
- The camera opens instantly. Taking a report photo no longer waits on a location fix first — the fix is captured in the background while you shoot.
- "Most common in DC" is ordered by actual report volume. The common-category shortcuts are now ranked by how often each type is reported.
- Smoother and lighter. Typing on long report forms, and panning/zooming the "Nearby reports" map, are smoother on older Android devices; submitting a report causes less stutter; and the category picker loads your recent reports faster and with less data.
- "My reports" opens faster when you have a long history. The list now shows and refreshes a page of reports at a time, loading more as you scroll, instead of building every (often photo-heavy) card up front.
- Now requires iOS 16.4 or later. As part of a major update to the app's underlying framework (which brings the Back-button fix below and other reliability improvements), the minimum supported iOS version is now 16.4. Devices on iOS 15 or 16.0–16.3 will stay on the last compatible build.
Fixed
- The tag & vehicle-ID scanner reads only what's in the framing box. It no longer picks up text from around the code, so it recognizes license plates and IDs reliably — and locks on faster.
- "What's New" only flags updates you don't have yet. It now compares against your installed version, so a release you're already on (or past) no longer shows as "Coming next."
- No longer asks whether you attached a photo when you already did. On some report types — including Roadway Markings / Pylons — the app failed to notice the photo you'd attached and left the "did you attach a photo?" question blank, blocking submit until you answered it by hand. It now detects the attached photo and answers that question for you, even on report types that ask it only after you pick a sub-category. It also no longer answers "No" by mistake when a photo is still uploading on a slow connection.
- The app no longer gets stuck on a spinner. Fixed several hangs: the camera failing to open, a report link with a missing/malformed ID, a GPS fix that never arrives, pull-to-refresh on "My reports" when an update fails to load, and DC 311 sign-in when the connection drops (which now shows a retry instead of "Signing in…" forever).
- Photo locations are more accurate. A report photo no longer attaches a nearby-but-wrong street address when your exact spot can't be matched to a house number. Prefill links carrying a location outside DC, nonsense coordinates, or an impossible date/time (e.g. 02/31 or 13:30 PM) now fall back to manual entry instead of opening a report with wrong details.
- "My reports" is more reliable. Status and "New" badges now reflect the reports you actually see; a report you just deleted no longer reappears after a background refresh; opening a report while offline shows the cached details instead of a network error; tapping a photo on your own report opens it full-size; showing archived reports no longer briefly freezes a long list; and duplicate status-change notifications (and reappearing cleared badges) are fixed.
- Recovers from bad data instead of breaking. A corrupted local cache no longer leaves the category list empty or a report screen stuck loading, and a malformed update to the "Nearby reports" data or the "What's New" feed is now handled gracefully instead of erroring.
- Sign-in and account fixes. Signing out of DC 311 now fully ends the web session on a shared device; saving your contact info no longer risks clearing your favorites or "My reports" history; and rare spurious "session expired" sign-outs and a post-sign-in screen flash are fixed.
- Smaller fixes. Canceling the ID scanner mid-scan no longer leaves a stale "Couldn't read an ID" message; a number field left as just a decimal point no longer bounces the whole report; your favorites are no longer pruned when DC 311 briefly returns a partial catalog; milestone/new-category rewards no longer fire on every report after 1,000 lifetime reports; near-simultaneous submissions no longer drop one from your stats; a leftover map pin can no longer overwrite a later report's location; and turning off diagnostics (or entering a custom reporting endpoint) now takes effect immediately.
- iOS: the header "Back" button works again. On iOS 26 the "Back" button in the top-left could stop responding to taps on some screens — Settings and the "Filed" confirmation among them — leaving the left-edge swipe as the only way back. Taps are reliable again.
- The "Nearby reports" map shrugs off a flaky connection. A momentary hiccup fetching the map data no longer shows "Couldn't load reports" — it retries automatically, and falls back to the last map you loaded (the data only refreshes hourly) instead of a blank error. Thanks to the anonymous feedback submitter who reported this.
OTA → v0.4.1
Over-the-air update
Bundle 019f6245
Fixed
- Android: typing no longer hides the field behind the keyboard. On Android, filling out a report, your contact info ("Your info"), or adding a past report now scrolls the text box you're typing in above the on-screen keyboard, so you can see what you're entering. Previously the keyboard could cover the lower fields on those screens. Thanks to Scott M for the bug report.
- Scanning a license plate now reads the whole tag. The graphic many states print between a plate's segments — the DC flag ("GH ✦ 7804"), Florida's orange, and the like — was splitting the scan in two, so it offered just one half (or a garbled fragment) instead of the full tag. The scanner now stitches the halves back together regardless of the graphic in between.
OTA → v0.4.1
Over-the-air update
Bundle 019f4f00
Added
- Scan a vehicle's license plate with your camera (Parking Enforcement). When you report a parking issue, the "vehicle tag #" field now has a Scan tag button — point your camera at the plate and it reads the number for you, the same on-device OCR the dockless-vehicle report uses (nothing leaves your phone). You can still type it in. Marked Experimental.
Changed
- Submit is instant now — send in the background. Tapping Submit no longer makes you wait on a spinner. Your report starts sending in the background and you go straight to a status screen that shows it filing (and flips to Filed ✓ with your points), where you can immediately Report another of the same type or a different type without waiting. Great for logging several issues in one spot (a block of illegal dumping, a row of dead streetlights). If a report can't be sent right then (you're offline, or DC 311 is down) it stays saved in My reports and sends automatically later; if DC 311 rejects it, the status screen offers Edit & fix to reopen it pre-filled.
- The "Nearby reports" map now tells open, in-progress, and closed apart. Reports still being worked on (in progress) now show in amber, distinct from brand-new open reports (type color) and closed ones (grey) — so you can see at a glance what's active versus already being handled. The report detail screen colors its status the same way.
Fixed
- A pin's status no longer disagrees with its detail. The map draws from a periodic snapshot while a report's detail is fetched live, so a pin could show as open when the report had just been closed. Now, once you open a report and see its live status, the map corrects that pin to match.
OTA → v0.4.1
Over-the-air update
Bundle 019f396c
Added
- Favorites now show in the photo-first flow. After you snap a photo and go to pick a category, your Favorites appear at the top — the same as on the home screen, with tap-a-star to add or remove.
- "Use my number" on phone / call-back fields. When a report asks for a phone or call-back number, a quick "Use my number" button drops in the phone from "Your info" — no re-typing (and it's formatted the way DC 311 expects).
Changed
- When DC 311 rejects a report, you can fix it on the spot. If DC won't accept an answer, the app now keeps you on the form with everything you entered, so you can correct the flagged field and resend right away — instead of bouncing you to the home screen to dig the report out of "My past reports." (It's still saved there as a backup.)
Fixed
- Every question type now sends DC 311 exactly what it expects — and it can't quietly break again. Some less-common questions were being sent as plain text, which DC could reject and fail the whole report after you'd filled everything in. What went wrong: DC 311 builds each form from question "types" (text, number, date, yes/no, …), and a few types weren't handled — so a call-back number typed with dashes, or a yes/no acknowledgement, went out as text and got bounced. What we changed: building on the earlier date/time fix, numbers now use a number keypad (and ignore dashes/spaces), yes/no questions use a checkbox, and phone questions get a phone keypad — so every question type DC uses is sent in a format it accepts. To keep it from recurring, an automated check now flags us if DC ever adds a new question type we don't handle yet, so we fix it before a report can fail.
OTA → v0.4.1
Over-the-air update
Bundle 019f2c1a
Fixed
- Catch a mistyped email before it costs you a report. If the email in "Your info" is malformed (missing @, no domain, a stray space), the app now flags it and asks you to fix it or use a phone instead — previously DC 311 would reject the whole submission with an unhelpful error.
OTA → v0.4.1
Over-the-air update
Bundle 019f1c7b
Added
- Photo previews in "My reports". Each report that has a photo now shows a thumbnail in the list, so you can spot reports at a glance. Previews load from the copy on your device when available and are cached, so the list stays fast.
Fixed
- Your photo now shows on open reports too. Opening a report you filed now shows the photo you attached even while it's still open — not just after it closes — by using the copy saved on your device. Handy for double-checking the shot came through clearly.
- Clearer message when DC 311 is down. If DC 311's service is temporarily unavailable when you submit, the app now says so directly — your report is saved and resent automatically once DC is back up, rather than implying your own connection was the problem.
v0.4.1
Store build
Added
- Update notifications. When a new version has downloaded, the app now shows a "tap to restart" prompt so you get the latest fixes right away, instead of waiting for the next launch or checking Settings. (Ships in a later 0.4.1 build.)
Fixed
- Date and time questions now work. Some request types ask for a date or a date and time (for example "Date and Time of Incident"). These now show a proper calendar/clock picker instead of a plain text box, so the value is always sent in the format DC 311 accepts. Previously a typed-in date could be rejected by DC and cause the whole report to fail to submit.
- Fixed a crash when opening the "Nearby reports" map. On some devices the map could crash the app as its pins loaded. It now opens reliably. (Ships in a later 0.4.1 build.)
OTA → v0.4.0
Over-the-air update
Bundle 019efc05
Fixed
- The report confirmation screen no longer shows a spinner that could spin forever. It was loading the filed report's details, but a just-filed report often isn't available to look up yet — now the screen settles instead of hanging, and shows the details if and when they're ready.
OTA → v0.4.0
Over-the-air update
Bundle 019efaa0
Changed
- Report-type search now looks at descriptions too: searching for a report type also matches words in each type's description, not just its name and keywords — so you'll find the right one even when you don't know its exact name. Results are ranked, with name matches shown first, then keyword matches, then description matches. When a match isn't in the title, the result shows what hit — the matched keyword, or a snippet of the description in context — and the matched text is highlighted. Thanks to Kyle G for the suggestion.
OTA → v0.4.0
Over-the-air update
Bundle 019ef704
Changed
- Address entry is clearer: the "Look up" button is now "Validate", sits beside "Pin on map", and grays out once your address is confirmed (the app usually validates it for you, so the button mainly matters when you type an address yourself).
- On Pin on map, when your pin sits away from the matched address, the "add the exact pin location to the report" option is now an obvious, tappable toggle (with a checkbox) instead of looking like plain text.
Fixed
- Tapping a report type in the category search now selects it on the first tap — previously, with the keyboard open, the first tap only dismissed the keyboard.
- Better address detection: when a photo's location, "use my location", or a dropped pin lands mid-block (where DC's address lookup returns only a ZIP code), the app now falls back to your phone's built-in geocoder and re-checks that street address against DC's records — so you get a usable address far more often instead of a "no street address" dead-end. On the map, the live address shown as you move the pin now reflects this too, so it matches what you'll get when you confirm.
v0.4.0
Store build
Added
- Scan a vehicle ID with your camera (experimental): when reporting a dockless vehicle, tap Scan ID with camera to read the printed ID with on-device OCR instead of typing it. It captures automatically once it locks onto the ID, and in low light it turns on a dim camera light by itself (iOS) so you can read the label at night. Everything stays on your device. Marked Experimental while we refine it.
Changed
- Nearby reports map now groups busy areas into numbered clusters when you're zoomed out, instead of quietly showing only some of the reports. Tap a cluster (or zoom in) to break it into individual report markers — so nothing is hidden when a lot is happening nearby, and the map stays smooth on large screens.
Fixed
- A report you just submitted now shows up in "My reports" right away, instead of sometimes not appearing until a later refresh.
- You can now pull to refresh "My reports" from anywhere in the list, not only by pulling down directly on a report.
- Opening a report straight from a notification or a shared link and tapping Back now returns you to the home screen instead of doing nothing.
OTA → v0.3.0
Over-the-air update
Bundle 019ef63e
Changed
- The Nearby reports map now shows when its data was last refreshed (e.g. "last updated 8m ago"), based on when the map data was last rebuilt, making it clearer how recent the reports on screen are.
- The Nearby reports map now refreshes its data on its own once it's more than an hour old (the data is rebuilt hourly), instead of only when you restart the app — so leaving the screen open no longer leaves you looking at stale reports.
Fixed
- "Your info" now asks for a first name (alongside a last name and an email or phone) — DC 311 requires it, so some reports were failing to submit without it.
OTA → v0.3.0
Over-the-air update
Bundle 019ef253
Added
- "Your info" now offers DC 311 sign-in to fill your contact details for you — if sign-in is available, the screen leads with a "Sign in to DC 311" option that pulls your name/email/phone from your account, so you don't have to type them (you can still enter them manually).
Changed
- After you sign in to DC 311, your past reports now reliably appear in "My reports" — the list pulls your account history when you open it and on pull-to-refresh, instead of sometimes showing nothing until much later.
- Nearby reports map now groups busy areas into numbered clusters when you're zoomed out, instead of quietly showing only some of the reports. Tap a cluster (or zoom in) to break it into individual report markers — so nothing is hidden when a lot is happening nearby, and the map stays smooth on large screens.
Fixed
- A report you just submitted now shows up in "My reports" right away, instead of sometimes not appearing until a later refresh.
- You can now pull to refresh "My reports" from anywhere in the list, not only by pulling down directly on a report.
- Report forms no longer show "example" helper entries as if they were selectable answers (one was even pre-selected). The dockless-vehicle "vehicle ID" examples and the bus-stop "Bus Stop Number" example now appear as reference images you can look at, instead of answer options you could accidentally pick or submit.
- Roadway Signs report: the "traffic sign" and "parking sign" pickers now show the actual sign choices — with pictures of each sign — instead of a single blank, unselectable option that made those reports impossible to submit.
- Report forms now clear follow-up answers that no longer apply when you change an earlier answer: pick one option, then switch to another that hides those follow-ups, and the stale questions (and their now-irrelevant choices) disappear instead of lingering on screen.
- The empty "My reports" screen can now be pulled to refresh (previously the "No reports yet" screen ignored the pull gesture).
v0.3.0
Store build
Added
- Achievements & civic points: earn rewards as you report — a bonus the first time you try each category, a milestone every 5 reports, a bump for each day you keep a streak going, and fun one-time trophies (First Report, Power User, streaks, "Rat King" for rodent reports, Night Owl, and more). Rewards pop with a confetti celebration on the confirmation screen, and "Your info" shows your civic-points total, reports, categories, best streak, and trophy collection.
- DC 311 sign-in (optional): sign in to your DC 311 account to pull your full report history and DC's responses into the app, and to auto-fill your contact info so you don't have to type it. Entirely optional — you can keep reporting without an account. The home screen shows your sign-in status; if a session expires, your saved contact info is kept and you're prompted to sign in again.
- Nearby reports map: a new "Nearby reports" screen (from the home screen) shows open, in-progress, and recently-closed DC 311 requests around you on a map — color- and icon-coded by type, with a ring that fills as a request nears its expected completion date — so you can check whether something you spotted is already reported before filing a duplicate. Tap a pin for details.
- Favorite report types: tap the star on any category to pin it to a Favorites list at the top of the home screen for quick access; tap again to remove.
- Export / share a report: a report's detail screen can now share a plain-text summary (type, status, dates, location, your description, the agency notice) via the system share sheet — handy for keeping a record or escalating one that was closed but isn't actually fixed.
- "Report this issue again": from a report's detail screen, start a fresh report pre-filled from it — same category and location, with a note that references the original ("previous request 26-XXXX … but the issue isn't resolved"), so you don't retype it.
- "New" badge in "My reports" marks any report with activity (a status change or a new response) since you last opened it; it clears when you view the report.
Changed
- The home screen now shows your Favorites instead of an auto-generated "recent reports" list, so it loads instantly with no network wait.
- Settings moved to a gear icon in the top-left of the home screen (freeing the spot it used for the new "Nearby reports" entry).
- "My reports" now opens instantly — it shows your last-loaded reports right away and refreshes their status in the background, instead of waiting on the network each time. Pull down to refresh on demand.
Fixed
- "My reports" now lists reports newest-first (by latest activity), including the archived section, instead of an inconsistent order.
OTA → v0.2.0
Over-the-air update
Bundle 019ee52a
Runs on build iOS 9 · Android 3
Added
- Settings → "See what's new" opens an in-app changelog: what's included in the version on your device, and what's waiting in your next update.
Fixed
- A report that got stuck because it included an answer to a follow-up question that no longer applied now fixes itself and sends on its own — the app cleans up the saved report against the current questions before retrying, instead of leaving it failed. (Previously you'd have had to re-create it.)
OTA → v0.2.0
Over-the-air update
Bundle 019ee4fc
Runs on build iOS 9 · Android 3
Thank you to our beta testers — your reports are what surfaced the fixes below. Please keep them coming.
Fixed
- Report types with conditional questions (where one answer reveals follow-up questions — e.g. "Roadway marking / striping") now work. The form shows only the questions that apply to your answers and sends only those, so DC 311 no longer rejects the report for answering a question that didn't apply.
- When DC 311 can't accept a report for a reason you need to fix (not just a temporary connection issue), the app now tells you why instead of quietly saving it and retrying in the background forever.
OTA → v0.2.0
Over-the-air update
Bundle 019ee043
Runs on build iOS 9 · Android 3
Added
- If error reporting is turned off, you can now open a specific error in Diagnostics, review exactly what it contains, and choose to send just that one to the developer. The event list marks each report Sent or Not sent at a glance, and a sent report is never sent twice. (With error reporting on, errors send automatically, so there's nothing to do.)
Changed
- The Settings version footer is now plainly informational — it just shows your app version, build, and current update bundle (tap to copy if support ever asks), instead of the more clinical "report this id" framing.
Fixed
- Errors and warnings now stay in the Diagnostics log instead of being pushed out by routine activity (the log used to drop the oldest events regardless of importance), so you can still find — and send — them later.
- Opening an entry in the Diagnostics event log no longer makes the app sluggish. It now opens in a scrollable sheet, and error entries no longer balloon in size internally (their breadcrumb context was nesting and compounding).
OTA → v0.2.0
Over-the-air update
Bundle 019ede4e
Runs on build iOS 9 · Android 3
Added
- A banner now appears at the top of the app whenever you have a report that hasn't been sent to DC 311 yet (queued, sending, or failed) — so a report saved for later can't quietly slip your mind. Tap it to open "My reports" and see status, retry, or finish anything that's missing info.
- "Pin on map" now has a center-on-my-location button — tap it to jump the map to where you are instead of panning by hand.
Changed
- The Settings footer now leads with a bundle id you can tap to copy — the exact id of the code you're running (it changes with each over-the-air update, unlike the build number). Reporting it tells us precisely which version you're on, and it matches the ids in this changelog so you can see what's included. The app version and build number are still shown, as secondary detail.
Fixed
- Reports can no longer slip through with incomplete contact info and then fail to send. The app now reliably requires a last name plus an email or phone before submitting (previously a stray space in one of those fields could pass the check), and a saved report that's still missing that info is now flagged for you to fix in "Your info" instead of being retried against DC 311, which rejects it.
- Taking a photo first and then choosing a category now behaves the same as choosing a category first: if your location is missing, outside DC, or has no street address, you get the same heads-up to enter the address — previously the camera-first flow stayed silent and could leave the address blank.
v0.2.0
Store build
Build Android 3
Fixed
- Android: opening "Pin on map" no longer crashes the app. Earlier Android builds shipped without the Google Maps key, so tapping into the map closed the app instantly; the map now loads normally. (iOS was unaffected.)
OTA → v0.2.0
Over-the-air update
Bundle 019edbdf
Runs on build iOS 9 · Android 2
Changed
- Diagnostics screen: the toggle is now labeled Error reports (more honest — that's all that's actually sent), and the description no longer mentions the underlying service. The footer's GitHub link has been removed for now.
- "Pick the spot" on the map now resolves the address live as you move the pin and shows whether the spot is usable: the matched street address (good) or a warning that there's no street address there (just a zipcode), so you know before committing. When the pin is far from its matched address (the issue is off in a park, lot, or alley — a scooter in the woods), you can opt to attach a precise map link to the exact spot — added to the report's location details. If the spot has no street address at all, the app tells you to move the pin onto a building or enter a nearby address, and offers to add the exact coordinates to the location details.
- Diagnostics (Settings): the recent-events list now shows a short preview with the app version visible without scrolling past hundreds of rows. "View all events" opens the full log on its own screen, filterable by level (errors / warnings / info / debug).
Fixed
- Photo uploads no longer spin forever when you walk from WiFi onto cellular (or any other connection drop). The app now watches for upload progress and, if nothing has moved for ~20 seconds, gives up on the current attempt — your photo is kept and the upload is automatically retried as soon as your signal comes back. You'll see a banner on the report screen explaining what's happening if the upload is slow or has stalled, and you can submit the report anyway: it'll be saved and the photo will catch up in the background. Captured photos are now also stashed safely the moment you take them, so you won't lose a shot if iOS reclaims its temp cache while you're filling out the form.
- Network requests now time out after 15 seconds instead of spinning forever on a flaky connection. Submitting a report, looking up an address, the map's "Use this location," and "My reports" no longer hang indefinitely — and a timed-out submit is saved and retried automatically, never lost.
OTA → v0.2.0
Over-the-air update
Bundle 019edb01
Runs on build iOS 9 · Android 2
Fixed
- The Settings/Diagnostics footer now shows the app's real build number instead of "build ?".
OTA → v0.2.0
Over-the-air update
Bundle 019ed832
Runs on build iOS 9 · Android 2
Added
- A banner now appears when DC 311 can't be reached (their service is down, or you're offline) that's honest about what still works: you can take photos, fill out reports, and tap Submit, and we'll save them and send automatically when the connection's back. It clears itself the moment the service responds.
OTA → v0.2.0
Over-the-air update
Bundle 019ed808
Runs on build iOS 9 · Android 2
Changed
- Report forms now open instantly from a local cache and refresh in the background, instead of waiting on the network each time. You can fill out and queue a report even when the DC 311 backend is slow or down (it sends once it recovers), and if you haven't started filling it in yet, the form quietly updates to the latest version of the questions.
Fixed
- The keyboard no longer covers the text field you're typing in — the form, "Your info," and "Add a past report" screens now scroll the focused field into view when the keyboard appears.
- If a report category fails to load (e.g. the DC 311 backend times out with a 504), the report screen now shows a "Retry" instead of spinning forever.
v0.2.0
Store build
Build iOS 9 · Android 2
Added
- Delete reports from "My reports": swipe a row left, or use "Remove from my reports" on the detail screen. Removing a filed report only clears it from your list (the 311 request is unaffected); discarding an unsent report stops it from being filed.
- Tap any report (in "My reports" or the clipboard preview) to open a full detail screen: status and the complete timeline/SLA dates, the report description, attached photos (tap to open full size), the agency's service notice, and location with ward/ANC and an "Open in Maps" button. Tap the request ID to copy it to the clipboard.
- "Add a past report" now detects a service request ID on your clipboard, previews that report (type, status, address), and lets you add it with a single tap instead of typing the ID.
- "My reports" now shows more status detail for each filed request: a clear status label, the handling department, and the expected completion date (or a "past expected date" flag, or the completion date once it's done).
- Attach multiple photos to a report. The report screen shows a thumbnail strip; add from the camera one at a time or pick several at once from your library (up to 5). Each photo has a remove button, and photos upload in the background so you're never left waiting.
- Long service descriptions now have a Show more / Show less toggle, expand to a larger, easier-to-read size, and any links in them are tappable.
Changed
- "My reports" now shows active reports by default — open ones plus anything closed in the last 7 days — and tucks older closed/canceled reports behind a "Show archived" toggle so the list stays manageable over time.
- The "Your info" screen makes it clear you only need to fill it in once — your contact details are saved on your device and reused automatically for future reports.
- The Diagnostics screen no longer displays the raw Sentry DSN.
Fixed
- Picking the wrong category after snapping a photo no longer loses the photo. You can change the category from the report screen (or with Back) and your photo and location carry over — no need to re-shoot.
- Submitting a report without a photo is allowed (photos are optional). The Submit button no longer implies a photo is required; it now tells you what's actually missing (an address, or your contact info).