{"record":{"id":"5b361bf33da24428","repo":"a-b-street/abstreet","slug":"can-t-start-walking-from","errorCode":null,"errorMessage":"can't start walking from {}","messagePattern":"can't start walking from (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"sim/src/make/spawner.rs","lineNumber":299,"sourceCode":"                        route,\n                        stop1,\n                        maybe_stop2,\n                    }\n                } else {\n                    //warn!(\"{:?} not actually using transit, because pathfinding didn't find any\n                    // useful route\", trip);\n                    TripSpec::JustWalking { start, goal }\n                }\n            }\n        })\n    }\n}\n\nfn start_sidewalk_spot(endpt: TripEndpoint, map: &Map) -> Result<SidewalkSpot> {\n    match endpt {\n        TripEndpoint::Building(b) => Ok(SidewalkSpot::building(b, map)),\n        TripEndpoint::Border(i) => SidewalkSpot::start_at_border(i, map)\n            .ok_or_else(|| anyhow!(\"can't start walking from {}\", i)),\n        TripEndpoint::SuddenlyAppear(pos) => Ok(SidewalkSpot::suddenly_appear(pos, map)),\n    }\n}\n\nfn end_sidewalk_spot(endpt: TripEndpoint, map: &Map) -> Result<SidewalkSpot> {\n    match endpt {\n        TripEndpoint::Building(b) => Ok(SidewalkSpot::building(b, map)),\n        TripEndpoint::Border(i) => {\n            SidewalkSpot::end_at_border(i, map).ok_or_else(|| anyhow!(\"can't end walking at {}\", i))\n        }\n        TripEndpoint::SuddenlyAppear(_) => unreachable!(),\n    }\n}\n\nfn driving_goal(\n    endpt: TripEndpoint,\n    constraints: PathConstraints,\n    map: &Map,","sourceCodeStart":281,"sourceCodeEnd":317,"githubUrl":"https://github.com/a-b-street/abstreet/blob/0964f29315820c91b171b585eb51e300164e9197/sim/src/make/spawner.rs#L281-L317","documentation":"start_sidewalk_spot converts a TripEndpoint into the SidewalkSpot where a pedestrian trip begins. For a border endpoint it calls SidewalkSpot::start_at_border, which returns Option; when the border intersection has no sidewalk (walking) lane connected, this error is thrown with the intersection ID. The trip cannot start walking from that border.","triggerScenarios":"TripSpec::JustWalking trips (via maybe_new) whose TripEndpoint::Border(i) intersection lacks an adjacent sidewalk lane — start_at_border returns None and the ok_or_else fires.","commonSituations":"Border intersections imported without sidewalks (highway ramps, rural borders); spawning walking trips at borders in maps where sidewalk coverage was reduced; trip seeds from a different map version than the one loaded.","solutions":["Pick a border intersection with an adjacent sidewalk when generating JustWalking trip endpoints","Verify sidewalk data was imported for the map area containing the border","Regenerate trip seeds against the current map so endpoints reference valid sidewalk borders","Fall back to ending/starting the trip from the nearest building or sidewalk position instead"],"exampleFix":"// before\nTripEndpoint::Border(i) => SidewalkSpot::start_at_border(i, map).ok_or_else(|| anyhow!(\"can't start walking from {}\", i)),\n// after\nTripEndpoint::Border(i) => SidewalkSpot::start_at_border(i, map).ok_or_else(|| {\n    warn!(\"border {} has no sidewalk; using nearest sidewalk spot\", i);\n    SidewalkSpot::suddenly_appear_near(i, map) // or return a Retryable error so the spawner relocates the endpoint\n})","handlingStrategy":"fallback","validationCode":"// before seeding a JustWalking trip at a border\nif let TripEndpoint::Border(i) = endpt {\n    if map.get_i(i).lanes(map).iter().all(|l| l.lt != LaneType::Sidewalk) {\n        // pick a different border or building endpoint\n    }\n}","typeGuard":null,"tryCatchPattern":"match start_sidewalk_spot(endpt, map) { Err(e) if e.to_string().starts_with(\"can't start walking\") => { warn!(\"{}; relocating endpoint\", e); start_at_nearest_sidewalk(endpt, map) }, r => r }","preventionTips":["Choose walking-trip borders that have adjacent sidewalks in the loaded map","Keep trip seeds and the map in version lockstep","Ensure sidewalk import coverage near all borders","Treat missing sidewalk spots as relocation, not failure"],"tags":["simulation","walking","trips","border"],"backgroundTag":"resource-not-found","analyzedSha":"0964f29315820c91b171b585eb51e300164e9197","analyzedAt":"2026-09-13T18:02:03.421Z","contentChangedAt":"2026-09-13T18:02:03.421Z","schemaVersion":2},"datasetVersion":"2026-09-16T04:17:20.429Z"}