Error codes
When something goes wrong, JustBook shows a short message and a code in the form LIKE_THIS. Look the code up below to see what it means and how to fix it. Codes are grouped by area; the code itself is the link anchor, so you can share a direct link to any one of them.
Auth / OTP
Section titled “Auth / OTP”OTP_REQUIRED
Section titled “OTP_REQUIRED”Verify your phone number first
You need to confirm your phone number with a one-time code before continuing.
Why it happens. The action you tried requires a verified phone number, and no confirmed code was found for it yet.
What to do. Request a verification code, enter it, then try again. If you didn’t get the code, wait a moment and resend it.
OTP_EXPIRED
Section titled “OTP_EXPIRED”Your code has expired
The one-time code you entered is no longer valid.
Why it happens. Verification codes are short-lived for security, and this one timed out before it was used.
What to do. Request a new code and enter it promptly.
OTP_SEND_FAILED
Section titled “OTP_SEND_FAILED”We couldn’t send your code
The one-time code couldn’t be delivered to you.
Why it happens. The chosen channel (SMS, WhatsApp, or email) couldn’t deliver the code — the number or address may be unreachable, or the channel is temporarily down.
What to do. Try a different delivery method, or double-check your phone number or email and resend.
CONTACT_SEND_FAILED
Section titled “CONTACT_SEND_FAILED”Your message didn’t go through
We couldn’t send your message to the business right now.
Why it happens. The contact request hit a temporary delivery problem on our side.
What to do. Wait a moment and send it again. If it keeps failing, reach the business another way.
RATE_LIMIT_EXCEEDED
Section titled “RATE_LIMIT_EXCEEDED”Too many attempts — slow down
You’ve made too many requests in a short time and have been temporarily paused.
Why it happens. To protect accounts, JustBook limits how often sensitive actions (like login or sending codes) can be retried.
What to do. Wait a minute, then try again. Avoid rapid repeat attempts.
TWO_FACTOR_REQUIRED
Section titled “TWO_FACTOR_REQUIRED”Two-factor authentication is required
You must complete a second verification step to sign in.
Why it happens. This business requires two-factor authentication for admin sign-in, and it can’t be skipped.
What to do. Enter the verification code sent to your device to finish signing in.
REAUTH_FAILED
Section titled “REAUTH_FAILED”Password confirmation didn’t match
The current password you entered to confirm this change wasn’t right.
Why it happens. Removing a passkey, turning off your authenticator app, or regenerating recovery codes asks for your current password — a signed-in device alone isn’t enough to weaken your sign-in security.
What to do. Enter your current account password and try again. If you’ve forgotten it, reset it from the sign-in page first.
TWO_FACTOR_METHODS_ENROLLED
Section titled “TWO_FACTOR_METHODS_ENROLLED”Two-step sign-in stays on while methods are set up
Two-step sign-in can’t be turned off while a passkey or authenticator app is set up on the account.
Why it happens. A saved passkey or authenticator that’s never asked for would look like protection that isn’t there — so the switch stays on until the methods are removed.
What to do. Remove the passkeys and authenticator app under My Profile → Security first, then turn two-step sign-in off. Admins can’t remove a member’s methods; the member does it from their own profile.
TOTP_ALREADY_ENABLED
Section titled “TOTP_ALREADY_ENABLED”An authenticator app is already set up
Your account already has an active authenticator app.
Why it happens. Each account holds one authenticator secret; setting up a new one would silently break the existing app.
What to do. Turn the current authenticator app off first (My Profile → Two-step sign-in methods), then set up the new one.
TOTP_CODE_INVALID
Section titled “TOTP_CODE_INVALID”That authenticator code didn’t match
The 6-digit code you entered doesn’t match your authenticator app.
Why it happens. Codes rotate every 30 seconds, so a code can expire between reading and typing it — or the app’s clock is out of sync.
What to do. Enter the freshest code your app shows. If it keeps failing, check your phone’s automatic date & time setting.
TOTP_SETUP_REQUIRED
Section titled “TOTP_SETUP_REQUIRED”No authenticator app is set up
This action needs an authenticator app, and your account doesn’t have one active.
Why it happens. Recovery codes belong to an authenticator-app setup, so they can’t be managed before one exists.
What to do. Set up an authenticator app under My Profile → Two-step sign-in methods first.
PASSKEY_VERIFICATION_FAILED
Section titled “PASSKEY_VERIFICATION_FAILED”The passkey couldn’t be verified
Your device’s passkey response didn’t verify, so you weren’t signed in.
Why it happens. The prompt may have been cancelled or timed out, the passkey may belong to a different account or business, or the browser blocked the request.
What to do. Try the passkey again, or choose another way to verify — a code by email or text always works.
PASSKEY_NOT_FOUND
Section titled “PASSKEY_NOT_FOUND”No passkey is saved
There’s no saved passkey matching this account or device.
Why it happens. The passkey may have been removed, or it was saved for a different account or business.
What to do. Sign in with a verification code instead, then save a new passkey from your profile.
CUSTOMER_EMAIL_IN_USE
Section titled “CUSTOMER_EMAIL_IN_USE”This email already has an account
An account here already uses the email address you entered.
Why it happens. You’ve booked here before, so your details are already on file — even if you’re using a new phone number now.
What to do. Sign in instead of creating a second account: you’ll get a one-time code and keep your booking history. Once you’re in, you can update your phone number from your profile.
CUSTOMER_PHONE_IN_USE
Section titled “CUSTOMER_PHONE_IN_USE”This phone number already has an account
An account here already uses the phone number you entered.
Why it happens. You’ve booked here before with this number, so your details are already on file.
What to do. Sign in instead of creating a second account, and you’ll keep your booking history. You can update your email address from your profile afterwards.
Appointments / booking
Section titled “Appointments / booking”TRAFFIC_ANALYTICS_DISABLED
Section titled “TRAFFIC_ANALYTICS_DISABLED”Visit statistics aren’t enabled here
Visit statistics aren’t enabled for this page.
Why it happens. The consent banner was answered just as the business’s plan or settings changed, so there is no statistics feature to consent to.
What to do. Nothing — your choice is simply not needed. The page works exactly the same.
CUSTOMER_APPOINTMENT_CONFLICT
Section titled “CUSTOMER_APPOINTMENT_CONFLICT”This customer is already booked at that time
The customer already has an appointment that overlaps the time you chose.
Why it happens. A person can’t be in two appointments at once, and one already exists in this slot for them.
What to do. Pick a different time, or open the existing appointment if you meant to edit it.
HOLD_ALREADY_CONSUMED
Section titled “HOLD_ALREADY_CONSUMED”Your held time slot expired
The time slot that was being held for you is no longer reserved.
Why it happens. Held slots are released after a short window so others can book them, and this hold was used or ran out.
What to do. Go back and pick a time again to start a fresh booking.
SLOT_UNAVAILABLE
Section titled “SLOT_UNAVAILABLE”That time slot isn’t available
The time you selected can’t be booked.
Why it happens. The slot was taken, falls outside the stylist’s working hours, or is otherwise no longer open.
What to do. Choose another available time from the booking page.
SLOT_OVERLAP
Section titled “SLOT_OVERLAP”This add-on runs into the next appointment
Adding this service would push the appointment into a time that’s already booked.
Why it happens. The extra service makes the appointment longer than the free gap before the next one.
What to do. Shorten or drop the add-on, move the appointment to a longer gap, or confirm to proceed if an override is offered.
APPOINTMENT_IN_PAST
Section titled “APPOINTMENT_IN_PAST”That time is in the past
You can’t book or move an appointment to a time that has already passed.
Why it happens. The date and time you chose is earlier than now.
What to do. Pick a future date and time.
EDIT_WINDOW_EXPIRED
Section titled “EDIT_WINDOW_EXPIRED”It’s too late to change this appointment
This appointment can no longer be rescheduled or cancelled online.
Why it happens. The business sets a cut-off before the appointment (for example, 24 hours ahead), and that window has closed.
What to do. Contact the business directly to ask about changing the appointment.
ALREADY_CANCELLED
Section titled “ALREADY_CANCELLED”This appointment is already cancelled
The appointment you’re acting on has already been cancelled.
Why it happens. It was cancelled earlier, so there’s nothing further to change.
What to do. No action is needed. Book a new appointment if you still want the service.
OVERRIDE_REASON_REQUIRED
Section titled “OVERRIDE_REASON_REQUIRED”A reason is required
You need to enter a reason to override the standard rule.
Why it happens. This override (for example, changing a cancellation refund) must be justified for the record.
What to do. Add a short reason and submit again.
OVERRIDE_PERMISSION_REQUIRED
Section titled “OVERRIDE_PERMISSION_REQUIRED”Override permission needed
You don’t have permission for this override. Enter an override code, or ask a manager.
Why it happens. Deviating from a policy (refund amounts, pricing, scheduling rules) requires the matching override permission — or a one-time override code issued by someone who has it.
What to do. Ask a manager to perform the override, grant you the permission, or issue you an override code.
OVERRIDE_CODE_INVALID
Section titled “OVERRIDE_CODE_INVALID”Override code not valid
That override code isn’t valid.
Why it happens. The code was mistyped, revoked, or issued for a different kind of override.
What to do. Check the code and try again, or ask the manager who issued it for a new one.
OVERRIDE_CODE_EXPIRED
Section titled “OVERRIDE_CODE_EXPIRED”Override code expired or used up
That override code has expired or has already been used.
Why it happens. Codes are single-use by default and expire within a few days of being issued.
What to do. Ask a manager to issue a fresh code.
INVALID_CUSTOM_MESSAGE
Section titled “INVALID_CUSTOM_MESSAGE”Your custom message isn’t valid
The custom notification you tried to send isn’t formatted correctly.
Why it happens. A custom message needs both a subject and a body, or you must choose the standard template instead.
What to do. Fill in both the subject and body, or switch to the default template.
Payments / money
Section titled “Payments / money”PAYMENTS_UNAVAILABLE
Section titled “PAYMENTS_UNAVAILABLE”Online payments aren’t set up yet
Online payments can’t be turned on for this business right now.
Why it happens. Stripe isn’t connected yet, or card charges haven’t been enabled on the connected account.
What to do. Owners: connect Stripe and finish enabling charges under Settings → Payments, then try again.
PAYMENTS_NOT_ENABLED
Section titled “PAYMENTS_NOT_ENABLED”This business doesn’t take online payments
Paying online isn’t available for this business.
Why it happens. The business hasn’t enabled online payments, so deposits and balances are handled in person.
What to do. Pay at the branch. Owners who want online payments can enable them under Settings → Payments.
ALREADY_PAID
Section titled “ALREADY_PAID”This is already paid
The amount for this booking has already been paid in full.
Why it happens. A payment was already completed, so there’s nothing left to charge.
What to do. No action is needed. Check your confirmation for the receipt.
NO_BALANCE
Section titled “NO_BALANCE”There’s nothing left to pay
This booking has no remaining balance.
Why it happens. The full amount has already been settled.
What to do. No payment is required.
BALANCE_ALREADY_PAID
Section titled “BALANCE_ALREADY_PAID”This visit is already paid
You can’t add extras because the visit has already been paid.
Why it happens. Once a visit is paid, add-ons can’t be attached to it.
What to do. Book the extra service as a new appointment, or add it in person before payment next time.
NO_REMAINING_BALANCE
Section titled “NO_REMAINING_BALANCE”No remaining balance to charge
There’s no outstanding balance left on this appointment.
Why it happens. The balance has already been paid or was zero to begin with.
What to do. No further payment is needed.
NOTHING_TO_CHARGE
Section titled “NOTHING_TO_CHARGE”Nothing to charge
There’s nothing to charge on this appointment.
Why it happens. The appointment is already fully covered — usually by a package or loyalty points — and no tip was added, so the total comes to zero. Card payments can’t be taken for a zero amount.
What to do. Add a tip to charge, or close the appointment out with Paid In Person and send the invoice if you need a record.
DEPOSIT_ALREADY_CHARGED
Section titled “DEPOSIT_ALREADY_CHARGED”The deposit is already paid
This appointment’s deposit has already been charged.
Why it happens. A deposit was collected earlier, so it can’t be charged a second time.
What to do. No action is needed. The deposit will be applied to the final total.
NO_DEPOSIT_REQUIRED
Section titled “NO_DEPOSIT_REQUIRED”No deposit is needed
This appointment doesn’t require a deposit.
Why it happens. The service or booking rules don’t call for a deposit, so there’s nothing to charge.
What to do. Continue without paying a deposit.
NO_CARD_ON_FILE
Section titled “NO_CARD_ON_FILE”No saved card for this customer
There’s no saved payment method on file to charge.
Why it happens. This customer hasn’t saved a card, so an automatic charge can’t be made.
What to do. Collect payment in person, or have the customer add a card and try again.
CARD_ERROR
Section titled “CARD_ERROR”Your card was declined
The card couldn’t be charged.
Why it happens. The bank declined the payment — common reasons are insufficient funds, an expired card, or a required verification step.
What to do. Check the card details, try a different card, or contact your bank, then attempt the payment again.
REFUND_EXCEEDS_MAX
Section titled “REFUND_EXCEEDS_MAX”Refund is more than allowed
The refund amount you entered is higher than what can be refunded.
Why it happens. A refund can’t exceed the amount originally charged and still available to return.
What to do. Lower the refund to at or below the maximum shown and submit again.
REFUND_EXCEEDS_COLLECTED
Section titled “REFUND_EXCEEDS_COLLECTED”Refund is more than was collected
The refund amount is higher than what the customer paid on that method.
Why it happens. Each payment method can be refunded at most what was collected on it — card, loyalty points, and cash are capped separately.
What to do. Lower the refund to at or below the collected amount shown for that method and submit again.
NO_CARD_CHARGES
Section titled “NO_CARD_CHARGES”No card payments to refund
There are no card charges on this appointment to refund.
Why it happens. Nothing was paid by card here, so there’s nothing to send back.
What to do. If money was collected another way, handle the refund through that method.
NOTHING_TO_REFUND
Section titled “NOTHING_TO_REFUND”Nothing selected to refund
Nothing was selected to refund on this appointment.
Why it happens. The refund would return no money, no loyalty points and no package use — every amount was left at zero and none of the toggles were switched on.
What to do. Enter an amount to return, or switch on ‘Restore package use’ to give the session back. Each part can be refunded on its own.
CURRENCY_MISMATCH
Section titled “CURRENCY_MISMATCH”Currencies don’t match
The currency of the plan you chose doesn’t match your current subscription.
Why it happens. A subscription can’t switch currencies partway through, and the target plan is priced in a different one.
What to do. Choose a plan in the same currency as your current subscription, or contact support to change currency.
CURRENCY_LOCKED
Section titled “CURRENCY_LOCKED”Currency can’t be changed
Your business currency is set when you create your business and can’t be changed later.
Why it happens. All of your pricing, invoices, and reports are kept in a single currency, so switching it partway would misstate your past figures.
What to do. Keep your current currency. To operate in a different one, set up a new business for it.
TIMEZONE_LOCKED
Section titled “TIMEZONE_LOCKED”Branch timezone can’t be changed
A branch’s timezone is set when the branch is created and can’t be changed later.
Why it happens. All of the branch’s appointment times — past and future — are recorded in its timezone, so switching it would shift what those times mean.
What to do. Keep the branch’s current timezone. For a location in a different timezone, create a new branch.
Loyalty / packages
Section titled “Loyalty / packages”LOYALTY_REDEMPTION_FAILED
Section titled “LOYALTY_REDEMPTION_FAILED”We couldn’t redeem your loyalty points
Your loyalty points couldn’t be applied to this booking.
Why it happens. The points balance or the discount conditions didn’t allow the redemption to go through.
What to do. Try booking without points, or check your points balance and the redemption rules and try again.
LOYALTY_REWARD_INVALID
Section titled “LOYALTY_REWARD_INVALID”This reward isn’t available
The loyalty reward you selected can’t be used right now.
Why it happens. The reward was removed or deactivated by the business, or it’s outside its validity dates.
What to do. Refresh the rewards list and pick one that’s currently offered.
LOYALTY_REWARD_NOT_APPLICABLE
Section titled “LOYALTY_REWARD_NOT_APPLICABLE”This reward doesn’t fit this booking
The loyalty reward you selected can’t be applied to this particular booking.
Why it happens. The reward is limited to certain services or branches, can’t be combined with another discount, or there’s nothing left for it to cover.
What to do. Pick a different reward, or book without one — your points stay untouched.
LOYALTY_REWARD_LIMIT_REACHED
Section titled “LOYALTY_REWARD_LIMIT_REACHED”You’ve used this reward already
This reward has a per-person limit and you’ve reached it.
Why it happens. The business caps how many times each client can redeem this particular reward.
What to do. Choose a different reward from the list.
PACKAGE_REDEMPTION_FAILED
Section titled “PACKAGE_REDEMPTION_FAILED”This package can’t be used here
Your package couldn’t be applied to this service.
Why it happens. The package doesn’t cover this service, has no uses left, or isn’t valid for this booking.
What to do. Pick a service the package covers, or book and pay without the package.
Gift cards
Section titled “Gift cards”GIFT_CARD_NOT_FOUND
Section titled “GIFT_CARD_NOT_FOUND”Gift card not found
No gift card matches that code.
Why it happens. The code was mistyped, or it belongs to a different business.
What to do. Check the code on your gift card email and type it again — dashes and spaces don’t matter.
GIFT_CARD_INACTIVE
Section titled “GIFT_CARD_INACTIVE”This gift card can’t be used
This gift card isn’t active.
Why it happens. The card hasn’t been paid for yet, was cancelled, or its balance has been fully spent.
What to do. Check the card’s status with the business, or pay another way.
GIFT_CARD_EXPIRED
Section titled “GIFT_CARD_EXPIRED”This gift card has expired
This gift card has passed its expiry date.
Why it happens. The business set an expiry window for gift cards and this card’s window has ended.
What to do. Contact the business — expiry terms are theirs to apply or waive.
GIFT_CARD_INSUFFICIENT_BALANCE
Section titled “GIFT_CARD_INSUFFICIENT_BALANCE”Not enough balance on the gift card
The gift card doesn’t have enough balance for that amount.
Why it happens. The amount requested is more than what’s left on the card.
What to do. Apply a smaller amount — the card covers part of the total and the rest is paid normally.
GIFT_CARD_AMOUNT_INVALID
Section titled “GIFT_CARD_AMOUNT_INVALID”Gift card amount not allowed
That gift card amount isn’t available.
Why it happens. The amount is outside the minimum/maximum this business sells gift cards for.
What to do. Pick one of the suggested amounts, or an amount within the shown range.
GIFT_CARD_NOT_CANCELLABLE
Section titled “GIFT_CARD_NOT_CANCELLABLE”This gift card can’t be cancelled
Partially used gift cards can’t be cancelled.
Why it happens. Some of the balance has already been spent, so the card can’t simply be voided and refunded.
What to do. Adjust the remaining balance instead, or contact support if a special-case refund is needed.
Coupon codes (tenant discount codes on bookings)
Section titled “Coupon codes (tenant discount codes on bookings)”COUPON_INVALID
Section titled “COUPON_INVALID”This coupon code can’t be used
The code you entered isn’t valid right now.
Why it happens. The code doesn’t exist, isn’t active yet, has expired, or has been fully used up.
What to do. Check the code for typos, or ask the business whether it’s still running.
COUPON_NOT_APPLICABLE
Section titled “COUPON_NOT_APPLICABLE”This coupon doesn’t apply to this booking
The code is real, but it doesn’t cover what’s in this booking.
Why it happens. The coupon is limited to specific services, categories or branches, or there’s nothing left in the total for it to discount.
What to do. Check the coupon’s conditions with the business, or book something it covers.
COUPON_LIMIT_REACHED
Section titled “COUPON_LIMIT_REACHED”You’ve used this coupon as often as allowed
This code has a per-client limit and you’ve reached it — or it’s for first-time clients only.
Why it happens. The business capped how many times one client can redeem the code, or restricted it to new clients.
What to do. Book without the code, or ask the business about current offers.
COUPON_MIN_SPEND_NOT_MET
Section titled “COUPON_MIN_SPEND_NOT_MET”This booking is under the coupon’s minimum spend
The code only applies above a minimum booking amount.
Why it happens. The business set a minimum spend for this coupon and the booking total is below it.
What to do. Add a service or add-on to reach the minimum, or book without the code.
Intake forms & waivers
Section titled “Intake forms & waivers”INTAKE_FORM_NOT_FOUND
Section titled “INTAKE_FORM_NOT_FOUND”This intake form doesn’t exist
The form you tried to open or edit isn’t there any more.
Why it happens. It was deleted, or the link points at another business’s form.
What to do. Go back to Intake Forms and pick the form from the list.
INTAKE_FORM_INVALID_FIELDS
Section titled “INTAKE_FORM_INVALID_FIELDS”The form’s fields need fixing
Some fields in the form you’re building aren’t valid yet.
Why it happens. A field is missing its label or options, there’s more than one signature field, or the signature isn’t last.
What to do. Fix the highlighted fields in the builder and save again.
INTAKE_SUBMISSION_INVALID
Section titled “INTAKE_SUBMISSION_INVALID”Some answers need another look
One or more answers didn’t pass the form’s checks, or the form changed since it was shown.
Why it happens. A required question was left blank, an answer doesn’t match the offered options, or the business updated the form while you had it open.
What to do. Review the highlighted answers — or the refreshed form — and sign again.
INTAKE_LINK_INVALID
Section titled “INTAKE_LINK_INVALID”This form link isn’t valid
The link can’t be opened.
Why it happens. The link is damaged or was tampered with, or the business no longer collects forms this way.
What to do. Ask the business to send a fresh link, or complete the forms when you arrive.
INTAKE_LINK_EXPIRED
Section titled “INTAKE_LINK_EXPIRED”This form link has expired
Form links stop working shortly after the appointment they were sent for.
Why it happens. The link’s validity window — the appointment plus a grace period, or 14 days for general links — has passed.
What to do. Ask the business to send a new link, or complete the forms when you arrive.
INTAKE_NOTHING_OUTSTANDING
Section titled “INTAKE_NOTHING_OUTSTANDING”Every form is already on file
There’s nothing to send — the client has completed all the forms this appointment needs.
Why it happens. The client answered the forms while booking, through an earlier link, or their once-on-file signatures are still current.
What to do. Nothing — the signed forms are on the appointment.
Catalog / booking flow
Section titled “Catalog / booking flow”INVALID_FLOW_HIERARCHY
Section titled “INVALID_FLOW_HIERARCHY”Booking steps are out of order
The booking flow steps you enabled don’t form a valid sequence.
Why it happens. Some steps depend on others — for example, the Collection step needs the Category step turned on.
What to do. Enable the required parent step, or turn off the dependent one, under your booking flow settings.
NOT_PUBLISHED
Section titled “NOT_PUBLISHED”This business isn’t live yet
This booking page isn’t available to the public yet.
Why it happens. The business hasn’t finished setup and pressed Publish, so online booking is still closed.
What to do. Owners: finish setup and press Publish to open bookings. Customers: check back soon or contact the business.
Subscription / tier / limits
Section titled “Subscription / tier / limits”SUBSCRIPTION_INACTIVE
Section titled “SUBSCRIPTION_INACTIVE”Your subscription isn’t active
This feature needs an active JustBook subscription.
Why it happens. The subscription has lapsed or been cancelled, so paid features are locked.
What to do. Reactivate your plan under Settings → Subscription to restore access.
SUBSCRIPTION_NOT_FOUND
Section titled “SUBSCRIPTION_NOT_FOUND”We couldn’t find your subscription
No matching subscription could be found for your account.
Why it happens. The subscription may have been removed, or your account isn’t linked to one yet.
What to do. Start a new subscription under Settings → Subscription, or contact support if you believe one should exist.
SUBSCRIPTION_PAST_DUE
Section titled “SUBSCRIPTION_PAST_DUE”Your subscription payment is overdue
A payment on your subscription hasn’t gone through.
Why it happens. The most recent billing charge failed, so the account is past due.
What to do. Update your payment method under Settings → Subscription and settle the outstanding balance.
SUBSCRIPTION_WAIVED
Section titled “SUBSCRIPTION_WAIVED”Your plan is on a complimentary rate
This billing action isn’t available because your plan is on a waived (complimentary) rate.
Why it happens. Your team is on a special rate managed by JustBook, so standard plan changes are handled differently.
What to do. Contact support to make changes to a waived plan.
PAYMENT_METHOD_REQUIRED
Section titled “PAYMENT_METHOD_REQUIRED”Add a payment method to publish
Your booking page can’t go live until there’s a payment method on your account.
Why it happens. Signing up takes no card, so nothing has been charged and your free trial hasn’t started — it begins the day you publish. Publishing does need a payment method on file.
What to do. Go to Settings → Subscription, choose Add payment method, then publish your booking page. Your free trial starts at that point, and nothing is charged until it ends.
ACTIVATION_FAILED
Section titled “ACTIVATION_FAILED”We couldn’t start your subscription
Something went wrong starting your subscription, so your booking page wasn’t published.
Why it happens. Publishing is what creates your subscription and starts your free trial. Our payment provider didn’t accept it — usually a temporary problem, occasionally a card the bank declined to save.
What to do. Try publishing again in a moment. If it keeps failing, check the card under Settings → Subscription or contact support — nothing has been charged.
ACTIVE_SUB_EXISTS
Section titled “ACTIVE_SUB_EXISTS”You already have an active subscription
You can’t start a new subscription while one is already active.
Why it happens. There’s already an active plan on this account.
What to do. Use Change Plan under Settings → Subscription to switch instead of starting a new one.
TIER_RESTRICTION
Section titled “TIER_RESTRICTION”Not available on your plan
This feature isn’t included in your current plan.
Why it happens. The feature belongs to a higher tier than the one you’re on.
What to do. Upgrade under Settings → Subscription to unlock it.
PROMO_MONTHLY_ONLY
Section titled “PROMO_MONTHLY_ONLY”Your promo only works on monthly billing
Your promo code’s discount runs for a set number of months, which only works on monthly billing.
Why it happens. A discount limited to a number of months has no meaning on an annual invoice — it would discount the whole year. Switching to annual is blocked while such a promo is active.
What to do. Remove the promo from your subscription first, then switch to annual billing.
STYLIST_LIMIT_EXCEEDED
Section titled “STYLIST_LIMIT_EXCEEDED”You’ve reached your bookable-stylist limit
Your plan doesn’t allow adding another bookable stylist.
Why it happens. Each plan size includes a set number of bookable stylists (seats), and you’re at the limit. Logins that don’t take appointments are unlimited.
What to do. Remove another stylist from booking, or move to a larger size under Settings → Subscription.
BRANCH_LIMIT_EXCEEDED
Section titled “BRANCH_LIMIT_EXCEEDED”You’ve reached your branch limit
Your plan doesn’t allow adding another branch.
Why it happens. Each plan and size includes a set number of branches, and you’re at the limit.
What to do. Move to a larger size or plan under Settings → Subscription to add more branches.
Plan sizes (CP-managed size axis)
Section titled “Plan sizes (CP-managed size axis)”SIZE_NOT_FOUND
Section titled “SIZE_NOT_FOUND”That plan size doesn’t exist
The plan size you referenced isn’t in the catalog.
Why it happens. The size code doesn’t match any defined plan size — it may have been mistyped or never created.
What to do. Check the available sizes and pick one of them, or contact support if you believe this size should exist.
SIZE_CODE_EXISTS
Section titled “SIZE_CODE_EXISTS”That size code is already taken
A plan size with this code already exists.
Why it happens. Size codes are unique, and one with the same code (in any letter case) is already defined.
What to do. Choose a different code, or edit the existing size instead.
SIZE_CODE_INVALID
Section titled “SIZE_CODE_INVALID”That size code isn’t valid
The size code doesn’t match the required format.
Why it happens. Size codes are short identifiers: a letter followed by up to seven letters or digits (for example, S6).
What to do. Pick a code in that format and try again.
SIZE_INACTIVE
Section titled “SIZE_INACTIVE”That plan size is retired
This plan size has been deactivated and can’t take new plans or purchases.
Why it happens. The size was retired from the catalog. Existing subscriptions on it continue unaffected.
What to do. Choose an active size, or reactivate this one first.
Onboarding / signup
Section titled “Onboarding / signup”ONBOARDING_GATED
Section titled “ONBOARDING_GATED”Signup isn’t open yet
JustBook opens to new businesses this September, so accounts can’t be created just yet.
Why it happens. We’re finishing the last of our own setup before taking on businesses, and signup stays closed until that’s done.
What to do. Leave your email on the signup page and we’ll tell you the moment it opens — the first ten salons to join get a founding discount.
NO_SIGNUP
Section titled “NO_SIGNUP”We couldn’t find that signup
There’s no signup in progress for that email.
Why it happens. The signup wasn’t started, was already finished, or used a different email address.
What to do. Start a new signup, or use the exact email you began with.
SIGNUP_IN_PROGRESS
Section titled “SIGNUP_IN_PROGRESS”A signup is already underway
There’s already a signup in progress for this email.
Why it happens. You began creating a business with this email but haven’t finished.
What to do. Resume the existing signup instead of starting over.
ALREADY_REGISTERED
Section titled “ALREADY_REGISTERED”This account already exists
An account with these details already exists.
Why it happens. This phone number or email is already registered.
What to do. Sign in with the existing account, or use a different phone number or email.
ONBOARDING_DONE
Section titled “ONBOARDING_DONE”This signup is already complete
Setup for this signup has already finished.
Why it happens. The business was already created from this signup, so there’s nothing left to do here.
What to do. Sign in to your admin to continue managing the business.
EMAIL_NOT_VERIFIED
Section titled “EMAIL_NOT_VERIFIED”Verify your email first
Your email address hasn’t been confirmed yet, so we can’t finish creating your account.
Why it happens. The 6-digit code we emailed at the start of signup wasn’t entered, or the signup was resumed past that step.
What to do. Go back to the verification step and enter the code. Choose Resend code if it didn’t arrive, or use a different email address.
TERMS_NOT_ACCEPTED
Section titled “TERMS_NOT_ACCEPTED”Accept the Terms to continue
You need to agree to the Terms of Service and Privacy Policy before your account can be created.
Why it happens. The agreement checkbox on the last step of signup wasn’t ticked, or the tick didn’t reach us.
What to do. Go back to Review & confirm, tick the agreement box, and try again. Both policies are linked from that line and open in a new tab, so you won’t lose your progress.
TENANT_CREATE_FAILED
Section titled “TENANT_CREATE_FAILED”We couldn’t finish creating this business
Something went wrong while setting up the account, so nothing was created.
Why it happens. Setup stopped partway — usually because the payment provider rejected the subscription or the chosen address was taken at the last moment.
What to do. Try again with the reference shown on screen. If it keeps failing, contact support and quote that reference.
RESOLUTION_INCOMPLETE
Section titled “RESOLUTION_INCOMPLETE”Resolve over-limit usage first
You need to bring your usage within the new plan’s limits before continuing.
Why it happens. The plan you’re moving to allows fewer branches or stylists than you currently use.
What to do. Remove enough branches or stylists to fit the smaller plan, then try the change again.
SPLIT_SCHEDULE_FAILED
Section titled “SPLIT_SCHEDULE_FAILED”Your new plan is active, but the size change didn’t schedule
Your new plan is active, but scheduling the size change failed.
Why it happens. A mixed plan change applies the new tier right away and schedules the size change for your renewal; the second step hit a temporary problem after the first had already gone through.
What to do. Pick the smaller size again — your tier is already updated, so this just schedules the remaining size change.
Notifications / channels
Section titled “Notifications / channels”CHANNEL_DISABLED
Section titled “CHANNEL_DISABLED”That channel isn’t enabled
One or more of the chosen notification channels aren’t turned on.
Why it happens. The business hasn’t enabled that channel (for example, SMS or WhatsApp) for this kind of message.
What to do. Enable the channel under Settings → Notifications, or pick a channel that’s already on.
CHANNEL_UNAVAILABLE
Section titled “CHANNEL_UNAVAILABLE”That channel can’t be used right now
The notification channel you selected isn’t available.
Why it happens. The channel is temporarily unavailable or not configured for this business.
What to do. Choose a different channel, or try again later.
CHANNEL_UNAVAILABLE
Section titled “CHANNEL_UNAVAILABLE”That channel can’t be used right now
The notification channel you selected isn’t available.
Why it happens. The channel is temporarily unavailable or not configured for this business.
What to do. Choose a different channel, or try again later.
CHANNEL_NO_DESTINATION
Section titled “CHANNEL_NO_DESTINATION”No contact detail for that channel
The customer has no address or number on file for the channel you picked.
Why it happens. Sending by email needs an email address, and SMS or WhatsApp need a phone number — this customer is missing the one required for the selected channel.
What to do. Add the missing email or phone to the customer’s profile, or choose a channel they do have a contact detail for.
ACK_REQUIRED
Section titled “ACK_REQUIRED”Please confirm before continuing
You need to acknowledge the impact of this change before it can go through.
Why it happens. This action affects existing appointments or features, so it asks you to confirm you understand.
What to do. Review the listed impact, tick the acknowledgement, and submit again.
QUOTA_EXCEEDED
Section titled “QUOTA_EXCEEDED”You’ve used your included messages
This month’s included SMS and WhatsApp messages are used up, so the message wasn’t sent.
Why it happens. Every plan includes a monthly allowance of text and WhatsApp messages. Once it’s used, sending pauses until the allowance resets at the start of next month — unless you have message credits.
What to do. Buy message credits under Settings → Subscription to keep sending now, or move to a plan with a larger allowance. Email is never affected.
Marketing broadcasts (Pro email_marketing)
Section titled “Marketing broadcasts (Pro email_marketing)”BROADCAST_NOT_FOUND
Section titled “BROADCAST_NOT_FOUND”We couldn’t find that broadcast
The marketing email you’re trying to open no longer exists on your account.
Why it happens. It was deleted, or the link points at a broadcast belonging to a different business.
What to do. Go back to Marketing and pick the broadcast from the list.
BROADCAST_NOT_EDITABLE
Section titled “BROADCAST_NOT_EDITABLE”This broadcast has already been sent
You can’t change a broadcast once it has gone out.
Why it happens. Edits only apply to a draft or a scheduled send that hasn’t left yet — a sent email can’t be recalled.
What to do. Duplicate it to start a new draft with the same content, then edit and send that.
BROADCAST_INVALID_AUDIENCE
Section titled “BROADCAST_INVALID_AUDIENCE”That audience isn’t valid
The set of clients you chose for this broadcast can’t be used as it stands.
Why it happens. One of the audience filters refers to something that no longer exists, or the combination of filters can’t be read.
What to do. Re-pick the audience from the Marketing screen, then save the broadcast again.
BROADCAST_EMPTY_AUDIENCE
Section titled “BROADCAST_EMPTY_AUDIENCE”No clients match this audience
Nobody would receive this broadcast, so it wasn’t sent.
Why it happens. Marketing emails only go to clients who opted in, and no opted-in client matches the filters you chose.
What to do. Widen the audience, or check how many of your clients have agreed to marketing email.
BROADCAST_OVER_QUOTA
Section titled “BROADCAST_OVER_QUOTA”This send needs more emails than you have left
The audience is larger than your remaining marketing email allowance for this month.
Why it happens. Your plan includes a set number of marketing emails each month, and this send would go past what’s left.
What to do. Buy message credits, narrow the audience, or wait until your allowance resets next month.
BROADCAST_SCHEDULE_IN_PAST
Section titled “BROADCAST_SCHEDULE_IN_PAST”That send time has already passed
You scheduled this broadcast for a moment that’s already gone by.
Why it happens. The chosen date and time are earlier than right now — often after a draft sat unsent for a while.
What to do. Pick a future time, or send the broadcast straight away.
BROADCAST_SEND_REFUSED
Section titled “BROADCAST_SEND_REFUSED”Your email provider wouldn’t accept the send
The email service that delivers your marketing mail refused this message, so it didn’t go out.
Why it happens. The provider turns mail away when a sending limit is reached, when the recipient’s address is blocked on their side, or when they are briefly throttling. Nothing is wrong with the broadcast itself.
What to do. Wait a moment and try again. If it keeps happening, open your email provider’s dashboard — the reason will be on their activity or suppressions page.
Message credits (paid add-on, billed outside the plan subscription)
Section titled “Message credits (paid add-on, billed outside the plan subscription)”CREDIT_PACK_NOT_FOUND
Section titled “CREDIT_PACK_NOT_FOUND”That credit pack isn’t available
The message credit pack you picked doesn’t exist.
Why it happens. The pack may have been withdrawn since the page was loaded.
What to do. Refresh Settings → Subscription and choose from the packs shown.
CREDIT_PACK_INACTIVE
Section titled “CREDIT_PACK_INACTIVE”That credit pack is no longer sold
This message credit pack has been retired and can’t be bought.
Why it happens. Pack sizes and prices change over time; this one is no longer offered.
What to do. Pick one of the current packs under Settings → Subscription.
CREDIT_PACK_IN_USE
Section titled “CREDIT_PACK_IN_USE”That credit pack has already been bought
This pack can’t be removed because businesses have already purchased it.
Why it happens. Removing it would break the record of what was bought and at what price.
What to do. Retire the pack instead — it stops being offered, and past purchases keep their history.
CREDIT_CHECKOUT_FAILED
Section titled “CREDIT_CHECKOUT_FAILED”We couldn’t start checkout
Something went wrong setting up the payment for your message credits.
Why it happens. The payment provider didn’t respond as expected. Nothing was charged and no credits were added.
What to do. Try again in a moment. If it keeps happening, contact support.
CREDIT_PURCHASE_NOT_FOUND
Section titled “CREDIT_PURCHASE_NOT_FOUND”We couldn’t find that purchase
The message credit purchase you’re confirming doesn’t exist on this account.
Why it happens. The checkout link may belong to a different business, or the purchase was never started.
What to do. Go back to Settings → Subscription and check your credit balance. Start a new purchase if it isn’t there.
Files & storage
Section titled “Files & storage”FILE_TYPE_NOT_ALLOWED
Section titled “FILE_TYPE_NOT_ALLOWED”That file type isn’t supported
You can’t attach this kind of file.
Why it happens. Only documents and images are accepted — PDFs, photos, Word, Excel, PowerPoint, text and CSV files. Other formats are blocked because they can carry active content.
What to do. Convert the file to PDF or an image and upload it again.
FILE_TOO_LARGE
Section titled “FILE_TOO_LARGE”That file is too big
The file you’re attaching is over the size limit for a single upload.
Why it happens. Each attachment has a maximum size so uploads stay fast and reliable.
What to do. Compress the file or split it into smaller parts, then upload again.
STORAGE_LIMIT_REACHED
Section titled “STORAGE_LIMIT_REACHED”You’ve run out of file storage
There isn’t enough space left to store this file.
Why it happens. Every plan includes an amount of file storage, covering the files you upload plus invoice PDFs and profile pictures. Yours is full.
What to do. Delete files you no longer need, or add extra storage under Settings → Subscription. Invoices are still created as normal.
STORAGE_BLOCKS_BELOW_USAGE
Section titled “STORAGE_BLOCKS_BELOW_USAGE”You’re using more storage than that
You can’t reduce your extra storage to that amount while your files still need it.
Why it happens. Dropping below what you’re storing would leave your existing files without space.
What to do. Delete some files first, then reduce your storage — or keep at least the amount shown.
STORAGE_NOT_CONFIGURED
Section titled “STORAGE_NOT_CONFIGURED”Extra storage isn’t available yet
Extra storage isn’t offered for your billing currency at the moment.
Why it happens. Add-on pricing is set per currency, and there’s no price published for yours yet.
What to do. Delete files you no longer need, or contact support to ask about extra storage.
Client-list import
Section titled “Client-list import”IMPORT_FILE_UNREADABLE
Section titled “IMPORT_FILE_UNREADABLE”That import file couldn’t be read
The client-list file you uploaded couldn’t be opened or understood.
Why it happens. The file may be corrupt, password-protected, or in a format other than CSV or Excel (.xlsx).
What to do. Re-export the list from your previous system as CSV or Excel, remove any password, and upload it again.
IMPORT_FILE_TOO_LARGE
Section titled “IMPORT_FILE_TOO_LARGE”That import file is too big
Client-list imports are limited to 10 MB per file.
Why it happens. A hard size cap keeps imports fast and reliable. Exports that include appointment history are often what pushes a file over it.
What to do. Export just the client list without history, or split the file and import it in parts.
IMPORT_TOO_MANY_ROWS
Section titled “IMPORT_TOO_MANY_ROWS”That import has too many rows
Client-list imports are limited to 10,000 rows per file.
Why it happens. A per-file cap keeps each import quick to review and easy to retry if a row needs fixing.
What to do. Split the file into parts under 10,000 rows and import them one after another — rows already imported are recognised and skipped.
IMPORT_NO_ROWS
Section titled “IMPORT_NO_ROWS”No clients found in that file
The file you uploaded doesn’t contain any client rows.
Why it happens. The file is empty, or only contains a header row without client data.
What to do. Open the file and check it lists your clients, then re-export from your previous system if not.
IMPORT_MAPPING_INVALID
Section titled “IMPORT_MAPPING_INVALID”Check the column matching
The way the file’s columns are matched to customer fields has a conflict.
Why it happens. Two columns are mapped to the same field, a full-name column is combined with first/last name columns, or no name column is mapped.
What to do. Adjust the matching in the import screen — the messages under the column list say exactly what to fix.
Stripe Connect onboarding URLs / country
Section titled “Stripe Connect onboarding URLs / country”INVALID_COUNTRY
Section titled “INVALID_COUNTRY”That country isn’t valid
The country you provided isn’t in the expected format.
Why it happens. A valid two-letter country code is required to set up payments.
What to do. Select your country from the list and try again.
INVALID_RETURN_URL
Section titled “INVALID_RETURN_URL”The return address isn’t allowed
The page you’d return to after payment setup isn’t a valid destination.
Why it happens. For security, the return address must belong to your own business site.
What to do. Start payment setup again from within your JustBook admin so the return address is set correctly.
INVALID_CANCEL_URL
Section titled “INVALID_CANCEL_URL”The cancel address isn’t allowed
The page you’d return to if you cancel setup isn’t a valid destination.
Why it happens. For security, the cancel address must belong to your own business site.
What to do. Start payment setup again from within your JustBook admin so the address is set correctly.
MISSING_RETURN_URL
Section titled “MISSING_RETURN_URL”No return address was provided
We couldn’t tell where to send you back after payment setup.
Why it happens. The return destination wasn’t included with the request.
What to do. Start payment setup again from within your JustBook admin.
Policy-change notices (Terms §15 advance notice)
Section titled “Policy-change notices (Terms §15 advance notice)”POLICY_NOTICE_NOT_FOUND
Section titled “POLICY_NOTICE_NOT_FOUND”We couldn’t find that policy notice
The policy-change notice being opened is no longer there.
Why it happens. It was discarded while the page was open, or the link points at a notice that doesn’t exist.
What to do. Reload the list of policy notices and open it again from there.
POLICY_NOTICE_ALREADY_SENT
Section titled “POLICY_NOTICE_ALREADY_SENT”That notice has already gone out
The notice was sent, so it can’t be changed, discarded, or sent again.
Why it happens. A sent notice is the record that subscribers were told — editing it would change what the record says they were told.
What to do. Nothing further is needed. If the wording has to change, draft and send a new notice.
POLICY_NOTICE_NOT_SENDABLE
Section titled “POLICY_NOTICE_NOT_SENDABLE”This notice isn’t ready to send
Something about the notice would break the advance-notice promise, so it wasn’t sent.
Why it happens. Most often the date it takes effect is today or in the past, which isn’t advance notice. It can also mean no document is named, or there’s nobody to notify.
What to do. Set a date in the future, make sure at least one document is named, then send again.
POLICY_NOTICE_EMAIL_UNAVAILABLE
Section titled “POLICY_NOTICE_EMAIL_UNAVAILABLE”Platform email isn’t set up
The notice wasn’t sent because there’s no working email sender configured.
Why it happens. Policy notices go out over the platform’s own email sender, and it hasn’t been configured yet.
What to do. Set up the platform sender under Settings → Messaging, then send the notice.
Control Panel permissions
Section titled “Control Panel permissions”CP_LAST_ADMIN
Section titled “CP_LAST_ADMIN”Someone has to be able to manage access
This is the last Control Panel user who can manage permissions, so that permission can’t be removed and the account can’t be deactivated or deleted.
Why it happens. Platform Administration is the permission that grants every other one. If no active account holds it, nobody can grant anything again — including granting it back.
What to do. Give another active Control Panel user the Platform Administration permission first, then make the change.
Task grid (platform-team tool)
Section titled “Task grid (platform-team tool)”TASK_NOT_FOUND
Section titled “TASK_NOT_FOUND”We couldn’t find that task
The task you’re ticking off or editing is no longer there.
Why it happens. It was deleted, or it was one of the daily tasks that clears itself once its day has passed, and the page was open from before.
What to do. Reload the task grid and work from the refreshed list.
TASK_DEFINITION_NOT_FOUND
Section titled “TASK_DEFINITION_NOT_FOUND”We couldn’t find that recurring task
The recurring task you’re editing doesn’t exist any more.
Why it happens. It was deleted while the page was open, or the link points at one that has since been removed.
What to do. Reload the list of task definitions and open it again from there.
TASK_CANNOT_SKIP
Section titled “TASK_CANNOT_SKIP”This task can’t be skipped
The task stays on the grid until it’s actually done.
Why it happens. It’s set to keep nagging, which is the setting reserved for deadlines that can’t quietly lapse.
What to do. Complete it, or change how it behaves when missed if it no longer needs to be that strict.
TASK_REOPEN_BLOCKED
Section titled “TASK_REOPEN_BLOCKED”The next one is already waiting
You can’t un-tick that task, because the following occurrence of it is already open.
Why it happens. Completing a recurring task creates the next one. A task only ever has one occurrence open at a time, so reopening this one would make two.
What to do. Complete or skip the occurrence that’s currently open first, then un-tick this one.
TASK_NOT_ADHOC
Section titled “TASK_NOT_ADHOC”That task comes from a recurring definition
Only one-off tasks can be edited or deleted directly.
Why it happens. This task was generated by a recurring rule, so deleting it would just make it come back, and its wording lives on the rule, not the task.
What to do. Skip this occurrence if it doesn’t apply, or edit or deactivate the recurring definition in settings.
Inventory (products & stock)
Section titled “Inventory (products & stock)”PRODUCT_NOT_FOUND
Section titled “PRODUCT_NOT_FOUND”This product doesn’t exist
The product you tried to open or change isn’t there any more.
Why it happens. It was deleted, or the link points at another business’s product.
What to do. Go back to Inventory and pick the product from the list.
PRODUCT_NOT_SELLABLE
Section titled “PRODUCT_NOT_SELLABLE”This product can’t be sold
That product can’t be added to a checkout.
Why it happens. It’s marked professional-use (backbar), it’s been deactivated, or it has no retail price set.
What to do. Open the product in Inventory and give it a retail price, or untick professional-use if you do sell it to clients.
STOCKTAKE_NOT_FOUND
Section titled “STOCKTAKE_NOT_FOUND”That stock count is gone
That stock count no longer exists.
Why it happens. It was closed or removed — possibly by someone else on another device.
What to do. Go to Inventory → Stock counts and start a new one.
STOCKTAKE_IN_PROGRESS
Section titled “STOCKTAKE_IN_PROGRESS”This branch is already being counted
Someone already has a stock count open for this branch.
Why it happens. Only one count can be open per branch at a time. Two counts of the same shelves would each correct against numbers the other was changing.
What to do. Open the count that’s already running and carry on with it, or close it if it was started by mistake.
STOCKTAKE_CLOSED
Section titled “STOCKTAKE_CLOSED”That count is already finished
This stock count has already been committed or closed.
Why it happens. Its corrections were applied, so there is nothing left to change.
What to do. Start a new count if you need to correct something. The finished count stays on record with what it changed.
ALREADY_REFUNDED
Section titled “ALREADY_REFUNDED”These products were already returned
This product sale has already been returned and refunded.
Why it happens. Someone returned it earlier — possibly on another device, or the button was pressed twice.
What to do. Open the appointment and check its payments; the return is recorded there with the amount refunded.
Booth rental: venue ↔ renter links
Section titled “Booth rental: venue ↔ renter links”VENUE_LINK_NOT_FOUND
Section titled “VENUE_LINK_NOT_FOUND”We couldn’t find that business
No JustBook business uses that address, or the link has since been removed.
Why it happens. The address was mistyped, the other business hasn’t finished signing up yet, or they removed the link from their side.
What to do. Check the address with them — it’s the part before .justbookapp.com on their booking page — and send the request again.
VENUE_LINK_EXISTS
Section titled “VENUE_LINK_EXISTS”You’re already linked
There’s already a link with that business, either live or waiting to be accepted.
Why it happens. The request was already sent, possibly by the other side.
What to do. Open Settings to see it. If it’s waiting on them, they need to accept it.
VENUE_LINK_SELF
Section titled “VENUE_LINK_SELF”That’s your own address
A business can’t link to itself.
Why it happens. The address entered is your own booking address.
What to do. Enter the other business’s address instead.
VENUE_LINK_WRONG_MODEL
Section titled “VENUE_LINK_WRONG_MODEL”These accounts can’t be linked
Links connect a venue with an independent professional who rents space there.
Why it happens. One of the two accounts is set up as something else — two venues, two professionals, or a salon that employs its team can’t be linked this way.
What to do. Check that both accounts picked the right setup when they signed up. If one chose wrong, contact support — the setup decides how the account works.
VENUE_LINK_NOT_YOURS
Section titled “VENUE_LINK_NOT_YOURS”The other business needs to accept this
You can’t accept a request you sent yourself.
Why it happens. Both sides have to agree to a link, so it’s always the other one who accepts.
What to do. Ask them to open Settings and accept the request.
VENUE_SUBSCRIPTION_REQUIRED
Section titled “VENUE_SUBSCRIPTION_REQUIRED”Choose a plan to add your own professional
A venue is free while every professional there runs their own business. Adding one of your own makes this a salon account, which needs a plan.
Why it happens. Plans are priced on the bookable professionals you employ, and a venue that lists independent professionals employs none — so there was nothing to charge for until now.
What to do. Open Settings → Subscription, pick a plan and add a payment method. The professionals you link to your page are separate accounts and never count towards yours.
Payroll time clock
Section titled “Payroll time clock”ALREADY_CLOCKED_IN
Section titled “ALREADY_CLOCKED_IN”They’re already clocked in
That team member already has a shift running.
Why it happens. Somebody clocked them in earlier and the shift was never closed — often a double tap, sometimes a shift from a previous day nobody clocked out of.
What to do. Clock them out first, or open Payroll → Time clock and correct the open shift. One person can only have one shift running at a time.
NOT_CLOCKED_IN
Section titled “NOT_CLOCKED_IN”They aren’t clocked in
There’s no open shift to close for that team member.
Why it happens. They were never clocked in, or somebody already clocked them out.
What to do. If they did work, add the shift by hand under Payroll → Time clock so the hours still reach the pay run.
Card readers (Stripe Terminal)
Section titled “Card readers (Stripe Terminal)”READER_NOT_FOUND
Section titled “READER_NOT_FOUND”Card reader not found
That card reader isn’t set up for this branch.
Why it happens. The reader was removed, or it belongs to a different branch than this appointment.
What to do. Pick a reader from this branch, or add one under Settings → Integrations → Card readers.
READER_OFFLINE
Section titled “READER_OFFLINE”The card reader is offline
We couldn’t reach the card reader.
Why it happens. The reader is powered off, asleep, or has lost its internet connection. Readers need to be on and online to take a payment.
What to do. Wake the reader and check it shows a network connection, then try again. You can always take the payment another way — card on file, a payment link, or in person.
READER_BUSY
Section titled “READER_BUSY”The card reader is in use
That reader is already taking a payment.
Why it happens. A collection is already in progress on the device, so it can’t start another.
What to do. Finish or cancel the payment on the reader, then try again.
READER_REGISTRATION_FAILED
Section titled “READER_REGISTRATION_FAILED”We couldn’t pair that reader
That pairing code didn’t work.
Why it happens. Pairing codes are shown on the reader’s screen and expire after a few minutes. The code may have been mistyped, already used, or timed out.
What to do. Generate a fresh code on the reader and enter it again exactly as shown.
READER_LOCATION_ADDRESS_REQUIRED
Section titled “READER_LOCATION_ADDRESS_REQUIRED”The shop’s address is needed
Stripe needs this shop’s full address before a card reader can be set up there.
Why it happens. A reader is registered to a physical location, and the address decides which regional card rules it uses. Some countries require the city, state, or postal code.
What to do. Fill in the address on the pairing form. You’ll only be asked once per branch.
TERMINAL_UNAVAILABLE
Section titled “TERMINAL_UNAVAILABLE”Card readers aren’t available here
In-person card readers aren’t available for this business yet.
Why it happens. Either the payment account isn’t finished connecting, or Stripe doesn’t support card readers in the country the account is registered in. A few countries support phone-based contactless payments but no physical reader, so being on Stripe’s Terminal list isn’t the same as being able to use a reader.
What to do. Check Settings → Integrations: if Stripe still needs connecting or verifying, finish that. If the message says readers aren’t available in your country, there’s nothing to fix on your side — take payment in person, by payment link, or on a saved card, and we’ll enable readers when Stripe supports them there.
Cancellation waitlist
Section titled “Cancellation waitlist”WAITLIST_ENTRY_NOT_FOUND
Section titled “WAITLIST_ENTRY_NOT_FOUND”We can’t find that waitlist request
This waitlist request doesn’t exist any more.
Why it happens. It was removed, or the link belongs to a different business.
What to do. Go to the booking page and join the waitlist again if you still want the day.
WAITLIST_TARGET_INVALID
Section titled “WAITLIST_TARGET_INVALID”That combination can’t be waitlisted
The service, location or team member you picked isn’t available to book together.
Why it happens. The service isn’t offered at that location, or the person you asked for isn’t taking bookings any more.
What to do. Start again from the booking page and pick from the options it offers.
WAITLIST_UNAVAILABLE
Section titled “WAITLIST_UNAVAILABLE”This business isn’t taking waitlist requests
You can’t join the waitlist for this business right now.
Why it happens. The business has either switched waitlist requests off or is on a plan that doesn’t include them.
What to do. Check back for a cancellation, or contact the business directly.
WAITLIST_ALREADY_JOINED
Section titled “WAITLIST_ALREADY_JOINED”You’re already on the list
You’ve already asked to be told if a spot opens on this day.
Why it happens. The request went through the first time.
What to do. Nothing — you’ll be messaged if someone cancels.
WAITLIST_LIMIT_REACHED
Section titled “WAITLIST_LIMIT_REACHED”You’re waiting on too many days
You’re already on the waitlist for as many days as this business allows.
Why it happens. Businesses cap how many open requests one client can hold.
What to do. Remove yourself from a day you no longer need, then try again.
WAITLIST_DATE_INVALID
Section titled “WAITLIST_DATE_INVALID”That date can’t be waitlisted
The day you chose has already passed, or is further ahead than this business takes bookings.
Why it happens. Waitlist requests only make sense for days you could otherwise book.
What to do. Pick a day inside the business’s booking window.
WAITLIST_SLOT_TAKEN
Section titled “WAITLIST_SLOT_TAKEN”Someone booked it first
The spot that opened up has been taken.
Why it happens. Everyone waiting for that day is told at the same time, and it goes to whoever books first — nothing is held.
What to do. You’re still on the list. We’ll message you again the next time something opens.
WAITLIST_CLAIM_INVALID
Section titled “WAITLIST_CLAIM_INVALID”This link isn’t valid
We couldn’t read that waitlist link.
Why it happens. It was cut short by the app you opened it in, or it isn’t for this business.
What to do. Open the booking page directly and pick a time from there.
WAITLIST_ENTRY_CLOSED
Section titled “WAITLIST_ENTRY_CLOSED”That waitlist request is closed
This request has already been dealt with.
Why it happens. You booked something for that day, or you were taken off the list.
What to do. Check your bookings. If you still want another time, book as normal.
Generic / misc
Section titled “Generic / misc”INTEGRITY_CONFLICT
Section titled “INTEGRITY_CONFLICT”This conflicts with an existing record
What you’re trying to save clashes with something that already exists.
Why it happens. A value that must be unique — like a name or code — is already in use, or a related record blocks the change.
What to do. Change the conflicting value (for example, use a different name), then save again.
INVALID_FIELD
Section titled “INVALID_FIELD”One of your entries isn’t valid
A field you filled in didn’t pass validation.
Why it happens. A value is missing, malformed, or not allowed for that field.
What to do. Fix the highlighted field and submit again.
CUSTOMER_NOT_FOUND
Section titled “CUSTOMER_NOT_FOUND”We couldn’t find that customer
The customer record you’re looking for doesn’t exist.
Why it happens. The customer may have been removed, or the details don’t match anyone on file.
What to do. Check the details, or create the customer before continuing.
PRIVACY_REQUEST_NOT_FOUND
Section titled “PRIVACY_REQUEST_NOT_FOUND”We couldn’t find that privacy request
The data-subject request being opened is no longer in the register.
Why it happens. The reference is wrong, or the request was removed after the page loaded.
What to do. Reload the list of privacy requests and open it again from there.
NO_CUSTOMER
Section titled “NO_CUSTOMER”No billing customer on file
There’s no billing profile set up for this account yet.
Why it happens. A subscription or payment profile needs to be created before this action can run.
What to do. Start a subscription under Settings → Subscription first, then try again.
NO_CHANGE
Section titled “NO_CHANGE”Nothing to change
The change you submitted matches what’s already saved.
Why it happens. You’re already on this setting or plan, so there’s nothing to update.
What to do. No action is needed. Pick a different option if you meant to change something.
HANDOFF_PIN_NOT_SET
Section titled “HANDOFF_PIN_NOT_SET”Set a staff PIN first
You can’t hand the device to a customer until your business has a staff PIN.
Why it happens. The customer-facing payment screen locks the rest of your portal behind a PIN, so a client holding your phone can’t reach your calendar, your client list, or anyone’s intake form. Without a PIN there is nothing to unlock it with, so the screen stays unavailable.
What to do. In Settings, choose a staff PIN of 4 to 8 digits that your team will remember and a client won’t guess. You can change it at any time.
HANDOFF_PIN_INVALID
Section titled “HANDOFF_PIN_INVALID”That PIN isn’t right
The PIN you entered didn’t unlock the screen.
Why it happens. The digits entered don’t match your business’s staff PIN. Repeated wrong attempts are slowed down deliberately, because this screen is used while a customer is holding the device.
What to do. Try again carefully. If nobody on shift knows the PIN, someone with settings access can set a new one from another device — changing it doesn’t need the old one.