---
title: "Troubleshooting"
description: "Fixes for common problems in FullHouse, including the exact error messages and what to do about them."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.meetfullhouse.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Troubleshooting

If something hasn't arrived or hasn't fired, start with [Debug](/workspace/debug). It shows a registrant's clock and every email planned for them, and lets you retry failed emails, webhook deliveries and automations.

## Sign-in and account

| What you see | What it means | What to do |
| --- | --- | --- |
| `This link has expired or was already used. Ask for a new one below.` | Your link has been used, or it's too old | Ask for a new one on that page |
| `These credentials do not match our records.` | Wrong email or password | Try **Forgot your password?** |
| `This reset link is invalid or expired.` | Reset links last an hour | Ask for another |
| `The authentication code is invalid or has already been used.` | Wrong or reused two-factor code | Wait for a new code, or use a recovery code |
| `Use 12–72 bytes with uppercase, lowercase, a number and a symbol.` | The password doesn't meet the rules | Choose a longer or more varied one |
| `This password has appeared in a data breach. Choose another password.` | It's been found in a known leak | Choose one you haven't used elsewhere |
| `The passkey could not be verified. Please try again.` | The device check failed | Try again, or use your password |
| `Too many attempts. Please retry later.` | Rate limit | Wait a minute |
| `A new verification link has been sent to your email address.` | You've changed your email address, or asked for another link | Open the link in the new inbox. It lasts an hour. Mistyped it? Use **Change it** on the **Email verification** page |
| `This email address is already in use.` | Another account has that address | Choose another |
| **You no longer have access** after signing in | You were [removed from a team](/workspace/team#remove-someone), or the owner deleted the account | Ask the workspace owner to invite you again |
| `Only the workspace owner can delete accounts. Ask them to remove you from the team.` | You're a team member | Ask the owner |
| `This email already has a FullHouse account, and one login belongs to one workspace. Ask them to use a different email address.` | You're [inviting](/workspace/team#invite-someone) an address that's already on FullHouse | Ask them for another address |
| Sent to the login page while working | Sessions last 2 hours without **Remember me**. The change you were saving isn't kept | Sign in, make the change again, and tick **Remember me** on your own computer |
| A page saying your workspace is suspended, after signing in | Your workspace has been suspended | See [If your account is suspended](/workspace/account-security#if-your-account-is-suspended) |

See [Account and security](/workspace/account-security).

## Publishing

| What you see | What to do |
| --- | --- |
| `Add a video source that passes validation (with a known duration) before publishing.` | Finish the [Video](/webinars/video) step, including validation |
| `Add at least one schedule before publishing.` | Add a [schedule](/webinars/schedule). A schedule with only past dates doesn't count |
| `Publish this day from its challenge so registration stays connected to the challenge hub.` | Publish the [challenge](/challenges/publish-manage), not the day |
| `Days 2, 3 need a working video before publishing.` | Add those days' videos |
| **Not ready to publish yet** | Read the list, and use the buttons to [go to what's missing](/webinars/go-live#if-publish-is-blocked) |
| `Challenge updated. It's paused because a day needs a working video.` | You saved it while a day had no working video. [Add the video and publish again](/challenges/publish-manage#when-a-challenge-pauses-by-itself) |
| `This address is already in use.` | Another webinar has that slug, or used it in the past. Choose another |
| `Enter a valid HTTPS URL.` | The link must start with `https://` |

## Saving

| What you see | What to do |
| --- | --- |
| A failed save anywhere in **Set up** | The message shows on the field and in the save bar. See the messages below |
| `Enter a valid date and time in the selected time zone.` | In the [schedule dialog](/webinars/schedule#if-a-schedule-wont-save), fill in every row and avoid a time skipped by a clock change |
| `Choose 1–50 session dates.`, `Choose the days of the week.` or `Choose 1–12 times in HH:MM format.` | Fix that part of the schedule |
| `End time must be after start time.` | **Day ends** must be later than **Day starts** |
| `Fill in or remove any blank bullets. Use up to 8 bullets of 200 characters each.` | Fix the bullet list on the [registration page](/webinars/registration-page) |
| `Put each answer option on its own line, with no blank lines. Use up to 10 options of 120 characters each.` | Fix that question's options |
| **You have unsaved changes** when changing step | Choose **Save changes**, **Discard** or **Stay**. See [If you have unsaved changes](/webinars#if-you-have-unsaved-changes) |
| `Choose the date and time the replay closes.` | Fill in **Expires at** on [Replay](/webinars/replay#set-a-fixed-date), or choose another **Expiry** |
| `Enter a valid date and time.` | Pick the replay's **Expires at** again |
| `That time doesn't exist in America/New York because the clocks change. Pick another time.`, with your own zone | Choose another time |
| `Days with attendance must keep their original schedule and remain in the challenge.` | Someone has watched, so the dates are locked |
| `One of these days has no such local time because the clocks change. Choose another time.` | The clocks change that day. Choose another time |
| `Choose today or a future date.` | A new challenge can't start in the past |
| **Manage this day from its challenge** | A day can't be deleted on its own. [Remove it with **Days**](/challenges/publish-manage#remove-a-day), or [delete the challenge](/challenges/publish-manage#delete-a-challenge) |
| `This day belongs to a challenge, so manage it from the challenge. Change the number of days there, or delete the whole challenge.` | The same |
| `Type the challenge's exact name to delete it.` | Type the name exactly as shown |

## Video

| What you see | What it means | What to do |
| --- | --- | --- |
| `Use a direct MP4 or M3U8 media URL, rather than a hosting page.` | YouTube, Vimeo, Loom, Wistia and Dropbox page links don't work | [Upload the file](/webinars/video), or use a direct link |
| `Use a public HTTPS URL without credentials or a fragment.` | The link is private or badly formed | Use a plain public HTTPS link |
| `The video could not be fetched safely. Use a reachable public HTTPS media URL.` | FullHouse couldn't reach it | Check it opens in a private browser window |
| `The video host failed the bounded Range request. Late joins need reliable seeking.` | Your host doesn't support seeking | Turn on range requests, or upload to FullHouse |
| `The video host does not allow cross-origin fetch. HLS needs CORS; plain MP4 playback may still work.` | Your host blocks other sites | Allow `https://showtell.live`, or upload to FullHouse |
| `Couldn't read the video in this browser` | The length couldn't be read | Check that the link is direct, or try another browser |
| `This browser can't play this video` | Probably HEVC or ProRes | Re-export as H.264 MP4 (HandBrake's Fast 1080p30 with Web Optimized works) |
| `That file isn't a video FullHouse can play. Export it as MP4 (H.264) and upload it again.` | The same | The same |
| `The upload arrived incomplete` | The upload was interrupted | Upload it again |
| `Upload a UTF-8 WebVTT file with a WEBVTT header and timed cues (at most 1 MiB).` | The captions file isn't right | Convert it to WebVTT |
| The video won't start for an attendee, with `Press play to join the live stream` | Their browser blocked autoplay | Ask them to press the button, which joins at the live position |

## Storage and media

| What you see | What to do |
| --- | --- |
| `This file is 2.4 GB but your Starter plan has 600 MB of storage left`, with your own numbers | Delete files you no longer use in [Media](/workspace/media-library), make this one smaller, or [ask for a bigger plan](/workspace/plan-usage) |
| `Intro.mp4 is still used by Spring masterclass (video). Replace it there first, then delete it.` | Replace the file where it's used, then delete it |
| `That file isn't really a .pdf file. Export it again and upload that.` | Export the file again |

## Emails

| Problem | What to do |
| --- | --- |
| Nobody's getting emails | Check that **From name** is set under [Email](/workspace/email), then look for failures under [Debug](/workspace/debug) |
| **Email isn't set up** on an email step | Nothing is sent until you [finish your email settings](/workspace/email) |
| **Add a sender name** on an email step | Emails go out under your workspace name until you add a **From name** |
| A test email didn't arrive | The reason shows under **Send a test to me**, such as your daily limit |
| Someone's **Replay available** shows `Replay is off.` or `Replay has closed.` | Replay was off or closed when it fell due. Check [Replay](/webinars/replay) |
| `File hosting isn't available right now.` | Link to a video hosted elsewhere, and try the upload again later |
| `FullHouse Send isn't available right now.` | [Connect your own provider](/workspace/email#connect-your-own-provider), then retry from Debug |
| `The setup request was refused.` or `The sending domain didn't verify in time.` on the Email page | FullHouse has been alerted. Wait for it to be fixed, or connect your own provider |
| `Daily FullHouse Send limit reached` | Emails over the limit fail rather than wait. Once it resets at midnight UTC, or after [connecting your own provider](/workspace/email), retry them from Debug |
| `Email provider rejected delivery (HTTP 401).`, or another code | Your Resend or Mailgun key or domain has a problem. Fix it, then retry |
| `Paste your API key to connect this provider.` | Needed whenever you switch provider |
| I turned an email on, but existing registrants didn't get it | Emails are planned at registration, so only new registrants get it |
| An attendee unsubscribed from one challenge day and the others stopped too | Unsubscribing [covers the whole challenge](/challenges/emails#unsubscribing-covers-the-whole-challenge). If they ask, [resubscribe them](/run/registrants#registrants-in-a-challenge) |
| Someone's follow-up shows `Delivery condition not met.` | That's normal: it's for a different audience |
| A registrant got few reminders | Reminders whose time had already passed aren't sent. This is usual on just-in-time schedules |
| `Hi there,` at the top of an email | The person has no first name, because the field was hidden or optional. Change the greeting, or make first name required |
| A link isn't showing as a button | A link must be alone on its line, with no other text beside it |
| Emails landing in spam | [Connect your own provider and domain](/workspace/email) and read the deliverability advice there |
| `Only failed emails can be retried.` | That email has another status |

## Registration

| What attendees see | What it means | What to do |
| --- | --- | --- |
| `No upcoming sessions right now. Check back soon.` | The schedule isn't offering anything now | Check your [schedule](/webinars/schedule) and blockout dates |
| `That session is no longer available — pick another time.` | That time has passed, or is no longer on offer | Choose another |
| `Pick a session time first.` | No time is selected | Choose one |
| `Find your personal link` | They've already registered | It's intended: they're emailed an access link, at most once per 10 minutes |
| **Too many attempts**, with `Please wait a minute, then try again.` | Too many sign-ups from one address, such as a shared office network, or the service is briefly overloaded | Wait a minute, then choose **Try again** |
| `This page isn't available` | The webinar or challenge is paused or a draft, or the address is wrong | Check it's published |
| `Sign-ups aren't open right now` in an embedded form | The same | Check it's published, and that the snippet names the right event |
| `This link isn't valid` | A personal link is wrong or incomplete, or belongs to someone you deleted | Have them use the link in their latest email, or register again |
| `This session already started` | They came after the late join window | Increase [late join grace](/webinars/schedule) if you want to be more lenient |
| `The live session has passed` on a challenge day | They came more than 15 minutes after the start | Point them to their hub for the replay. See [When people can join](/challenges/days#when-people-can-join) |
| `Stop these emails?` | They opened an unsubscribe link. Nothing changes until they press **Unsubscribe** | That's normal |
| `That time is no longer available. Refresh and choose another session.` | When changing session | Choose another |
| `A session you have already attended cannot be moved.` | They've already attended | Leave it |

## The room

| Problem | What to do |
| --- | --- |
| The chat box says `The host has muted your shared chat. Private Q&A remains available.` | You or a moderator muted them. Unmute them in [Live chat](/run/live-chat) |
| A timeline edit hasn't appeared in the room | Attendees load offers, polls and handouts when they open the page, so they need to reload |
| An attendee's question says `Sent. The reply will appear here.` and nothing else happens | Check [Questions](/run/questions) and your [AI setup](/webinars/ai-answers) |
| `This poll already has responses. Keep its question and answer labels unchanged, or add a new poll.` | Add a new poll instead |
| `End must be after the start.` | Adjust the item's times |
| `Use 1 to 4000 characters.` under a reply | Your reply is empty or too long. The box keeps your text |
| `No usable rows found. Expected columns: time, name, message.` | Check your CSV uses commas and has the columns in that order. See [CSV formats](/reference/csv-formats) |
| `Upload a UTF-8 text file.` | Save it as **CSV UTF-8** |

## AI answers

See [AI answers](/webinars/ai-answers) for the full list.

| What you see | What to do |
| --- | --- |
| `AI provider returned HTTP 401.` | Create a new key and paste it into [AI assistant](/workspace/ai-assistant) |
| `AI provider returned HTTP 402.` | Add credit to your OpenRouter account |
| `AI provider returned HTTP 429.` | OpenRouter is rate limiting you. Wait and try again |
| `Today's AI limit has been reached. It resets at midnight UTC.` | Wait until midnight UTC, and answer in your inbox meanwhile |
| `AI answers aren't available right now.` | Try again later, and answer in your inbox meanwhile |

## Tracking

| Problem | What to do |
| --- | --- |
| A pixel doesn't fire in Preview | Preview doesn't run scripts. Test on the public link |
| A sign-up pixel doesn't fire on the thank-you page | Registering doesn't load a new page. Use a [redirect to your own thank-you page](/webinars/thank-you-page) and fire it there |
| A pixel doesn't fire on a challenge's sign-up page or hub | Add it to the challenge's [Tracking section](/challenges/registration-hub#tracking-on-these-pages). A day's Tracking step only runs in that day's room |

## Reports

| Problem | Why |
| --- | --- |
| The show-up rate looks low | Registered counts include people whose session hasn't happened yet |
| The Sessions tab's **Showed up** differs from the report's **Showed up** | The report groups people by when they registered, and the tab by the session they attended |
| An offer click is on someone's activity but not in the report | They never attended that session, and the report's clicked numbers count attendances |
| Counts dropped | Someone [deleted a registrant](/run/registrants#delete-a-registrant), which removes them from every count and report |

## Integrations and webhooks

| What you see | What to do |
| --- | --- |
| `Integration is not connected for this workspace.` | Connect it under [Integrations](/connect) |
| `Connect this provider under Workspace → Integrations first.` | The same |
| `Integration returned HTTP 401.`, or another code | The provider refused the request. Check credentials and tags |
| `Choose between 1 and 20 tags.` | Change your selection |
| `Add a tag, remove a tag or choose an automation.` | A Pinball rule needs at least one action |
| `Pinball no longer accepts this connection. Reconnect it under Integrations.` | [Reconnect Pinball](/connect/pinball) |
| `That Pinball connection expired. Start it again.` | The approval window is 15 minutes. Start over |
| `Pinball access wasn't approved, so nothing was connected.` | Start again and approve it |
| `Webhook returned HTTP 500.`, or another code | Your endpoint refused it. Fix it, then retry from Debug |
| `Webhook request failed.` | Your endpoint didn't answer within 10 seconds, or couldn't be reached |
| `This endpoint is paused. Turn it back on, then retry.` | Turn the endpoint back on, then retry the delivery from Debug |
| `This automation is paused. Turn it back on, then retry.` | Turn the rule back on, then retry from Debug |
| `Choose at least one supported event.` | Tick an event |
| An automation rule shows a failed count | Check its latest error, fix the cause, then retry under [Failed automations on Debug](/workspace/debug#retry-a-failed-automation) |
| `No registrant with that join token or link in this workspace.` on Debug | The link is from another workspace, or it's a challenge hub link. Open the person in the day's registrants instead |

## AI agents (MCP)

| What you see | What to do |
| --- | --- |
| `MCP access isn't included in your plan.` | [See your plan](/workspace/plan-usage) |
| `Sign in to FullHouse to use this server.` | Reconnect, or create a new token |
| `This connection is read-only. Reconnect FullHouse with full access to make changes.` | Disconnect and reconnect with **Full access** |
| `You can have up to 20 tokens. Revoke one you no longer use first.` | Revoke one |
| `Requests are limited to 7 MiB.` | Ask your AI to split the job into smaller requests |
| `You don't have access to a workspace` when connecting an app | You've been [removed from a team](/workspace/team#remove-someone). Ask the owner to invite you again |
| `Pass the challenge's exact name ("Webinar sprint") as confirm_name to delete it.`, with your own challenge's name | Your AI gave the wrong name. Check it's the challenge you mean |
| `Too many requests: this connection can make 300 a minute.` | Slow down |
| `Not found in this workspace. Check the id (list tools show valid ones).` | Ask your AI to list items first |

See [Connect Claude](/mcp/connect-claude), [other clients](/mcp/connect-other-clients) and [security](/mcp/security) for more.

Source: https://docs.meetfullhouse.com/reference/troubleshooting/index.mdx
