# What do visitors see if Croct is unreachable or no experience matches?

Asked by Grace Kimani on 2024-06-19. Tags: storyblok, fallback, reliability.

A big share of our audience browses on slow mobile connections, so I am very
careful about anything I add to the render path. Before I propose putting a
personalization layer on top of our Storyblok site I need to understand the
failure modes properly.

Three cases I care about:

1. The Croct API times out or is unreachable during a request.
2. A visitor does not match any audience at all.
3. An experiment gets paused mid-flight.

What renders in each case? I do not want a blank hero for someone on a 2G
connection because a third party had a bad day

## 1 answer

### Accepted answer from Owen Marsh (2024-06-19)

All three cases resolve to the same place: your regular Storyblok content.
That is the whole point of the overlay model. Your blocks stay in Storyblok
and act as the default fallback for the slot, so a visitor who matches no
audience just gets the block content you already publish today. Nothing
extra happens for them.

For the failure case, the SDKs let you pass explicit fallback content on
each fetch, and errors are catchable so you can return defaults yourself.
In practice that means a timeout or network error degrades to the default
block, not to a blank region. Fault tolerance and SSR are part of how the
component CMS side is designed, it assumes the fallback path will get
exercised.

Paused experiments behave the same way: the slot serves its default
content while the experiment is paused, so stopping a test never leaves a
hole in the page.

The one thing I would still do given your audience is set a sensible
fallback on every fetch rather than relying on defaults alone. It makes
the failure behavior explicit in code, which is easier to reason about in
a review.
