## TL;DR
A Snowflake freshness SLA breach needs the same separation as any freshness failure, with Snowflake specifics: check the table's last DML time from account usage and the stream or task history, compare it with the monitor's timestamp column, and check warehouse timezone settings, since session timezone differences shift apparent freshness by hours.

```text
freshness failure error: snowflake table freshness failed SLA breach
```

## Use this when
- The check or run fails with this symptom: the Snowflake table's freshness is reported beyond its SLA window.
- You are working on a Snowflake table breaching its freshness SLA and the failure repeats on the same data or configuration.
- You need the failing rows, rule, or stage isolated before changing thresholds or code.

## Not for this skill when
- A breach on another warehouse, where account-usage and task history checks differ instead.
- The error text names a different tool, stage, or root cause. Match the verbatim error first and use that skill.

## Steps
1. Query the table's maximum business timestamp and check its last modified time in Snowflake account usage views. Verify: business freshness and physical update time are both known
2. Review the tasks, streams, or external loader history that feed the table for failures or suspensions in the breach window. Verify: the feeding pipeline's state in the window is established
3. Read the monitor configuration for its timestamp column and timezone and compare with the Snowflake session timezone. Verify: any timezone or column mismatch is identified
4. Fix the failing pipeline, resume a suspended task, or correct the monitor's column or timezone handling. Verify: the correction targets the confirmed cause
5. Confirm the next load lands and the monitor measures it as fresh within the SLA. Verify: the next cycle measures inside the SLA

## Variant phrasings
### snowflake table freshness failed SLA breach
The verbatim Snowflake freshness phrasing.
### snowflake freshness monitor task suspended
The task-suspension phrasing for stopped pipelines.
### snowflake freshness timezone mismatch monitor
The timezone phrasing for apparent freshness shifts.

Compatibility: Snowflake tables with Soda, Monte Carlo style, or custom freshness monitors

## Why it happens
Snowflake separates compute from the monitor's view, and task suspensions, stream offsets, and timezone handling all change what freshness appears to be. The SLA breach can be a stopped task, a genuinely late source, or a monitor reading a business timestamp that legitimately lags the load.

## Edge cases / pitfalls
- Distinguish load SLA from event SLA in the monitor name so responders check the right pipeline.
- Suspended tasks fail silently. Alert on task state, not only on table freshness.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_nK6nWnjm_nxzPqhFPYGazA
