Skip to content

Reservation widget troubleshooting

  1. Confirm the page still contains both the data-menuorb-reservation element and loader script.
  2. Confirm data-key begins with rw_live_ and has no spaces or truncated characters.
  3. Load https://www.menuorb.com/widgets/menuorb-reservations.js directly to confirm a firewall or plugin is not blocking it.
  4. Check the browser console for Content Security Policy or script errors.
  5. Exclude the loader from delayed JavaScript and clear all caches.

Add the exact website origin in Reservations > Settings > Allowed websites:

https://restaurant.example

Do not include /booking, a trailing page path, or query parameters. Add https://www.restaurant.example separately if visitors use it.

The hosted page does not need an external parent origin. The embed sends the parent website origin to enforce the allow-list. This usually means the external domain is missing or does not exactly match the saved scheme/host.

Confirm all of the following:

  • Accept public reservations is enabled;
  • the website widget is active;
  • the public key belongs to this restaurant and has not been rotated;
  • the restaurant and feature access are active.

Check:

  • restaurant operating hours and time zone;
  • active tables and table capacities;
  • party-size maximum;
  • reservation duration and slot interval;
  • minimum notice and maximum advance days;
  • existing reservations occupying suitable tables.

A slot is omitted when the complete reservation duration would pass closing time.

The form is clipped or leaves too much empty space

Section titled “The form is clipped or leaves too much empty space”

The standard loader auto-resizes between 480 and 1400 pixels. Start with data-height="720". If a theme constrains the wrapper, remove fixed heights or overflow:hidden from parent sections.

A direct iframe does not receive automatic resize messages; increase its height manually.

  • data-color changes the launcher in button mode.
  • The form accent, background, and text colors come from the saved MenuOrb appearance settings.
  • Save the dashboard settings and refresh the public page.
  • Purge CDN/page cache if old embed code remains.

Replace the entire data-key value with the key copied from the intended restaurant. Then verify the new restaurant allows the current origin and clear all caches.

Rotation immediately invalidates the old key. Update every embed, hosted link, social-profile link, QR code, and cached page with the new key.

Do not load the MenuOrb script more than once per page. The current loader protects each container from mounting twice, while the reservation request also uses an idempotency key, but duplicated website scripts should still be removed.

A submission fails once, then succeeds after retry

Section titled “A submission fails once, then succeeds after retry”

Confirm the website is running the latest loader, remove stale service-worker/CDN caches, and inspect the first failed API response. MenuOrb uses idempotent requests so retrying the same completed submission does not intentionally create duplicates.

When contacting support, provide:

  • restaurant name;
  • public page URL;
  • whether you used form, button, hosted link, or direct iframe;
  • approximate failure time and time zone;
  • browser/device;
  • screenshot and browser-console error;
  • public widget key (never an owner access token).