Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Start with the first relevant error in the failed GitHub Actions step—not a wholesale workflow rewrite. Chromatic failures can come from Actions setup or secrets, Storybook’s production build, story rendering, visual changes, Git context, or a pull-request check that never reported. Identify which layer failed, then apply the matching fix.

Find the failing layer before changing the workflow

Open the failed run, expand the first failed step, and note the exact error text and the point at which it occurs. A failure during dependency installation needs a different fix from a production build error or a pending pull-request status.

Where it fails What to investigate
Checkout or dependency installation Repository access, package installation, and the workflow’s working directory.
Storybook build The production build command, compiler output, configuration, and dependencies.
Story extraction or rendering Runtime errors in Storybook and whether the local production build contains stories.
Chromatic verification or upload The build URL, exact CLI message, connectivity, and any timeout.
Commit association or baseline Git availability, history, checked-out ref, and the commit metadata Chromatic receives.
GitHub pull-request check Whether the Chromatic step ran and the relevant project check is enabled.

Chromatic documents CLI exit codes 0 (OK), 1 (BUILD_HAS_CHANGES), 2 (BUILD_HAS_ERRORS), 3 (BUILD_FAILED), 4 (BUILD_NO_STORIES), and 5 (BUILD_WAS_LIMITED). An exit code alone is not enough to choose a fix: read the accompanying message and inspect the build result in Chromatic’s UI. The action also exposes a code output and build-related outputs; these can help report results in a workflow but do not replace reviewing the build. See Chromatic’s CLI documentation and GitHub Actions guide.

Check the action, project token, and repository setup

Chromatic’s documented baseline workflow checks out the repository, installs dependencies, then runs chromaui/action with the project token supplied from a GitHub Actions secret:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.
- name: Checkout repository
  uses: actions/checkout@v4

- name: Install dependencies
  run: npm ci

- name: Publish to Chromatic
  uses: chromaui/action@latest
  with:
    projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}

Treat this as a workflow shape, not a promise that a particular action tag is current. Chromatic documents @latest for automatic updates, @vX to follow a major version, and @vX.Y.Z to pin a version. Check the current Chromatic action instructions and repository tags before copying or changing a tag; pinning trades automatic updates for a fixed version.

Store and scope the token correctly

  1. In the repository that owns the workflow, open GitHub’s repository settings and configure an Actions secret named CHROMATIC_PROJECT_TOKEN.
  2. Use ${{ secrets.CHROMATIC_PROJECT_TOKEN }} in the action’s projectToken input.
  3. Confirm the workflow runs in that repository and that the token belongs to the intended Chromatic project.

Forked repositories do not receive repository-level secrets. Do not commit the token as ordinary workflow text or print it in logs: Chromatic warns that anyone with access to a plaintext token can run builds against the project.

Check the working directory in a monorepo

Make sure the action runs from the Storybook subproject, that its package.json contains the expected build script (or the configured alternate script), and that the token matches that project. If an earlier step already built Storybook, configure storybookBuildDir to point at the generated output. Chromatic documents these workflow options in its GitHub Actions guide.

Fix “Failed to build Storybook” in production mode

Chromatic builds Storybook in production mode. A Storybook that runs in development can therefore fail during Chromatic’s build because of a compiler, dependency, or configuration problem that does not appear in storybook dev. Reproduce the production build locally first, for example with npm run build-storybook, then fix the underlying error before treating the failure as specific to GitHub Actions. Chromatic also suggests serving the generated output locally to reproduce its behavior. See the CLI documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

“Failed to extract stories from your Storybook”

Chromatic’s troubleshooting guidance associates this message with a runtime error in Storybook. Build and open the Storybook locally, then check the browser console for the runtime failure. Fix that error and confirm the production build works before rerunning the workflow.

“Cannot run a build with no stories”

First confirm the local build actually contains stories. Chromatic’s Quickstart identifies disabled snapshots—including a top-level chromatic: { disableSnapshot: true }—as one possible cause. Remove a broad disable or re-enable the intended snapshots if that setting is responsible; do not assume the message means the repository has no story files. See Chromatic’s Quickstart troubleshooting.

When the local production build succeeds but CI still fails

Run the Chromatic CLI with diagnostics to capture additional context:

npx chromatic --dry-run --debug --diagnostics-file

Review the resulting logs and diagnostics for process or environment differences. Redact the project token and sensitive project details before sharing any output publicly. Chromatic documents these options in its CLI and configuration reference.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

Separate visual changes from build failures

A successfully rendered story with a visual difference is a review outcome, not necessarily a broken build. The GitHub Action’s exitZeroOnChanges default is true, so detected changes can leave the action successful while awaiting review. Set exitZeroOnChanges: false when the team deliberately wants visual changes to fail the workflow check:

- name: Publish to Chromatic
  uses: chromaui/action@latest
  with:
    projectToken: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
    exitZeroOnChanges: false

Review the differences in Chromatic: accept intended changes or reject them and change the code when the visuals are not intended. Do not use automatic acceptance to hide build errors.

exitZeroOnChanges and autoAcceptChanges do different jobs. The former controls whether detected changes can exit successfully without being accepted; the latter accepts changes on a configured branch. Use automatic acceptance only for a deliberately selected baseline branch and review policy. Details are in the GitHub Actions guide and configuration reference.

Restore Git history and the right commit context

Chromatic uses Git to associate builds with pull requests and detect baselines. If the log shows a git log -n 1 error, check whether Git is installed and whether the job checkout includes usable repository history. Chromatic notes that Docker images may lack Git; its CI guide says Docker images need Git version 2.28.0 or later. Also verify that .git exists in the job’s checkout and that the history available is sufficient for the project. See Quickstart troubleshooting and Automate with CI.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

Investigate detached HEAD or unexpected baselines

GitHub Actions can produce a detached-HEAD issue with a pull_request trigger or when checkout lacks a ref. Inspect the failing run’s actual checked-out SHA and ref before changing branch settings. Chromatic recommends running the action on push events because a pull_request run can use an ephemeral merge commit and lead to lost or unexpected baselines in some scenarios. That is a workflow trade-off, not a universal requirement to remove pull-request triggers. See Chromatic’s detached HEAD FAQ and GitHub Actions guide.

Check commit-to-build association

If the Chromatic build is attached to the wrong commit or pull request, compare its commit hash with the commit shown in GitHub. Check that the project is linked to the intended repository. If you manually supply Git context, Chromatic describes setting CHROMATIC_SHA, CHROMATIC_BRANCH, and CHROMATIC_SLUG together, with values that consistently identify the intended commit, branch, and repository. Do not set only one of these to compensate for a mismatch in the others. See Chromatic’s CI guide.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Resolve pending or unsynchronized pull-request checks

A required check that remains pending may never have reported a result. Chromatic says the check state is driven by its build result; a skipped workflow step or disabled Chromatic check can leave GitHub waiting. Confirm that the project is linked to the intended Git provider, the relevant UI Test or UI Review check is enabled in Chromatic project settings, and the action runs for commits that require the status. A build with visual changes awaiting review can also remain pending until someone reviews and approves them. See Mandatory PR checks and Automate with CI.

Do not skip the whole action when GitHub expects its status

If a conditional causes the Chromatic step not to run, GitHub may never receive the status it requires. Chromatic recommends using its --skip behavior instead of skipping the CI step in situations where a skipped build should resolve the status. Confirm the intended behavior against the CI guide and mandatory-check guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Choose required checks deliberately

Require a Chromatic pull-request check when visual review is intended to block merging. Make sure the specific check required in GitHub is enabled in the Chromatic project and that the workflow reports it for every relevant commit. Assign clear review ownership so changes awaiting approval do not become an unexplained blocker. Chromatic notes there is no API or setting to mark a check passed independently of the build result; see Mandatory PR checks.

Diagnose “Build verification timed out” and intermittent failures

For “Build verification timed out,” first determine whether the Storybook server stopped early or the network connection was interrupted. An increased time limit may help a genuinely slow build, but it will not repair a crashed server or lost connection. Chromatic identifies STORYBOOK_BUILD_TIMEOUT and CHROMATIC_TIMEOUT as environment variables for increasing the time allowed. Change them only after inspecting which step is slow or interrupted. See Chromatic’s timeout FAQ.

For slow Git operations, Chromatic’s configuration reference lists gitTimeout with a default of 20 seconds for an individual Git operation and gives a larger value as an example. Treat that as a configuration value documented by Chromatic, not a universal timeout for an entire build. If logs point to an intermittent service or build issue, preserve the build URL and logs and rerun; Chromatic recommends rerunning in that situation. See the configuration reference and Quickstart troubleshooting.

Or skip the browser setup

Chromatic’s failures are usually diagnosed from build logs, Git context, and project checks; for a separate task that needs a website screenshot, ScreenshotNeo offers a one-request API:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

See the ScreenshotNeo API documentation. ScreenshotNeo accepts cookie/consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 shots a month with no card; paid plans start at $5 for 3,000 shots.

Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.

Frequently Asked Questions

Does a Chromatic visual change always mean the GitHub Actions job should fail?

No. The GitHub Action defaults exitZeroOnChanges to true; whether changes fail the job is a workflow policy choice.

Should I switch every Chromatic workflow from pull_request to push?

No. A push trigger can avoid some synthetic merge-commit and baseline complications, but inspect the actual ref and commit context before changing triggers.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.