{"version":"2.1.221","anchor":"sandbox-read-config-is-cached-and-no-longer-fatal-on-failure","canonical_anchor":"sandbox-read-config-is-cached-and-no-longer-fatal-on-failure","heading":"Sandbox read config is cached and no longer fatal on failure","tier":"notice","area":"Sandbox","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221\/e\/sandbox-read-config-is-cached-and-no-longer-fatal-on-failure","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.221","markdown":"### Sandbox read config is cached and no longer fatal on failure\n\nSandbox file-read config is cached and no longer crashes when the native lookup fails.\n\n**What**\n\ngetFsReadConfig memoises its result per config object, and a throw from the native call is logged and recovered from rather than propagated.\n\n**Details**\n\n- result is cached keyed on the config object, so repeated calls skip the native work\n- on throw, deny\/allow lists are synthesised from the raw filesystem deny lists plus credential file paths\n- the failure is logged rather than surfaced to the caller\n\n**Evidence**\n\n`[sandbox] getFsReadConfig threw; falling back to raw deny lists: `\n\n- Area: Sandbox\n- Tier: You'll notice\n- Useful: 2\/5\n- Signal: 0\/5"}