Exception: HotCell::PermanentFailure

Inherits:
StandardError
  • Object
show all
Defined in:
lib/hot_cell/failures.rb

Overview

The gem cannot pick an application's exception classes, because two applications already do irreconcilable things with the same one. One puts ActiveStorage::PreviewError in an UNPROCESSABLE_ERRORS list and writes metadata = true, which no code path anywhere in that application ever un-writes. Another never marks at representation time and splits on the cache header instead, serving a file-icon placeholder with a hundred-year expiry for a permanent failure and no-store for anything else.

So a gem that raised PreviewError for a capacity refusal would, in the first, permanently destroy the thumbnail of every blob viewed during a cell restart, with no recovery short of a hand-written backfill. permanent on the wire says which class to raise; injection is what stops the gem from guessing.

These two are the fallback for a registration that injected neither. They are deliberately classes no application already rescues, so an unclassified failure surfaces as a loud 500 rather than as a silent permanent mark. Loud is the right way round.