Skip to content

Error Model

Core uses exceptions for operations that cannot satisfy their contract and structured issues for scientific findings that must remain reviewable alongside partial or rejected data.

Exception boundaries

Exception Meaning
SchemaError A payload does not satisfy the expected shape
DesignError Experimental design is invalid for the requested analysis
ScientificEvidenceError Available evidence cannot support the requested scientific result
UnsupportedFormatError No supported parser or adapter can interpret the input format
InvalidWorkflowError A workflow composition violates its declared contract
ProgramValidationError Program validation produced governed issues
ReviewGateBlockedError A named scientific or review gate prevents progression
InvalidLifecycleTransitionError A requested state transition is not allowed
MissingExecutionBackendError An explicitly requested external execution backend is unavailable

Structured issue models cover sequence, spectrum, format, input integrity, search configuration, decoy strategy, identification, quantification, PTM, experimental design, annotations, workflow output, and scientific-consistency findings. They retain codes and row or entity context so a report can include rejected material without turning it into valid evidence.

flowchart TD
    X[Scientific operation] --> V{Contract valid?}
    V -->|no| E[Typed exception]
    V -->|yes| Q{Record-level issues?}
    Q -->|yes, recoverable| P[Partial result plus issue and rejection tables]
    Q -->|yes, gate-breaking| B[Blocked or refused result]
    Q -->|no| S[Complete result]

Empty output is not a universal error representation. “No identifications,” “all rows rejected,” “unsupported format,” “failed QC,” and “no biological effect” carry different scientific meanings and require different evidence.

Triage an empty or partial result

Observation Scientific interpretation Required next record
parser accepted no records input, mode, or format did not yield a valid scientific record parse report with source identity and row-level rejection reasons
identification produced no accepted PSMs no candidate survived the declared search and confidence policy search configuration, score distribution, decoy behavior, threshold, and rejected candidates
every quantitative row failed QC measurements existed but none satisfied the declared quality burden per-row QC, missingness, normalization state, exclusion rule, and affected samples
comparison reports no effect the modeled contrast did not support an effect under the declared design design matrix, estimator, uncertainty, multiplicity policy, and detectable-effect limits
format or workflow is unsupported Core cannot interpret or compose the requested contract typed exception or refusal naming the supported alternatives
backend is unavailable a requested external capability cannot execute backend identity, environment, missing capability, and whether import remains valid
some records remain usable the result is partial, not empty accepted and rejected partitions plus aggregation and claim limitations

Consumers must not replace any of these outcomes with an empty dataframe or zero-valued summary. The distinction determines whether to correct input, change scientific policy, restore capability, narrow the claim, or accept a null result.