Troubleshooting

The most common problems, their causes and what to do.

Start with System status

In Nevua → Dashboard → System status, Nevua checks the usual causes and says what to do. For more detail, turn on WordPress’s debug log (WP_DEBUG and WP_DEBUG_LOG in wp-config.php): Nevua writes what failed (an email, a payment gateway, a calendar) to wp-content/debug.log.

The form shows no times, or not the ones I expect

A time is offered only if all of this allows it:

  • it’s a working day, inside a shift (Settings → General), or inside the professional’s own schedule (PRO);
  • it’s not a day off;
  • it’s after the minimum notice and before the maximum advance;
  • the service ends by the time the shift does;
  • nobody else has a booking then (nor a payment in progress, on PRO);
  • the professional’s connected calendar shows no busy event then (PRO).

Check your site’s time zone too (WordPress’s Settings → General → Timezone): pick your city, not a UTC offset.

“Failed to load services” on the form

The form limits requests per visitor IP address: 60 a minute, and 10 new bookings a minute. Many quick tries in a row, usually while testing, reach the limit. Wait a minute and reload. A logged-in administrator is never limited.

Behind Cloudflare or a proxy, every visitor can look like the same IP. See For developers.

Clients don’t get the emails, or they land in spam

WordPress’s default email is often filtered. Install an SMTP plugin and connect it to a sending service or your domain’s mailbox. Then send a test email from Nevua → Notifications. See Emails and reminders.

Reminders arrive late or not at all

Reminders depend on WP-Cron, which needs visits to the site. System status shows when they last ran. Ask your host for a real cron job that calls wp-cron.php every few minutes.

PRO: a payment went through but the booking is still pending

The payment gateway couldn’t tell your site. Check that:

  • the site is public and on https;
  • the gateway’s webhook points to the Webhook URL shown in Settings → Payments, with the events listed there;
  • on Stripe, the webhook secret is the endpoint’s signing secret (whsec_…).

Without the payment’s confirmation, the held time is released after 30 minutes.

PRO: PayPal or Pix isn’t on the form

  • PayPal takes BRL, USD, EUR and MXN only.
  • Pix needs Mercado Pago switched on and the currency set to BRL.
  • A gateway shows only when it’s switched on and its keys are saved.

PRO: SMS or WhatsApp messages aren’t sent

Open Notifications → Logs: each attempt is listed with the reason it failed. The usual ones:

  • the client left the phone empty;
  • the channel is on but has no provider (the Channels tab warns about it);
  • a Twilio trial account reaches only numbers verified in Twilio;
  • WhatsApp: the message has no approved template (Content SID), or Meta hasn’t approved it yet.

PRO: a Google or Outlook calendar won’t connect

It’s almost always the return address: it must be exactly the Redirect URI Nevua shows under Settings → Calendar sync. While the Google app is in testing mode, only the test users you listed can connect. See Calendar sync.

For developers

  • Behind a proxy or Cloudflare: Nevua uses the connection’s own IP by default, because forwarded-IP headers can be forged. If your proxy sets them reliably, add add_filter('nevua_trust_proxy_headers', '__return_true'); to a small plugin or your theme’s functions.php; behind Cloudflare, also add add_filter('nevua_trust_cloudflare', '__return_true');. Turn these on only if the site is behind a proxy: otherwise a visitor could write their own address.
  • Keep the data on deletion, whatever the setting: define('NEVUA_PRESERVE_DATA', true); in wp-config.php.