Black Friday: 79% off every plugin Shop the sale →

Common Issues

The Quarantine folder shows “Not writable”#

Symptom: The Settings screen shows a Not writable badge instead of a path, wp pug status prints NOT WRITABLE, and held updates raise a High gate-error alert.

Cause: PHP cannot create or write to any of the candidate folders (a folder outside the web root, or wp-content/uploads/pug-quarantine/).

Fix:

  1. Make sure wp-content/uploads/ is writable by the PHP user.
  2. Or create a folder outside the web root, make it writable, and add define( 'PUG_QUARANTINE_DIR', '/path/to/folder' ); to wp-config.php.
  3. Reload Update Gate → Settings and confirm the path appears.

Updates go through although the gate should hold them#

Symptom: An update with findings was installed instead of held.

Cause: One of: the plugin is not in scope (check Gated on the Plugins in scope screen); the vendor is trusted (check Trusted until); the score is below the Hold threshold; or the gate hit an error and Fail open let the update through.

Fix:

  1. Open Update Gate → History and look at the row’s score and outcome. An outcome of error means fail-open; the matching High alert has the details.
  2. Check Plugins in scope for the plugin’s override and trust, and revoke trust if needed.
  3. Lower the Hold threshold or turn on Hold every update if you want to be stricter.

I did not receive an alert email#

Symptom: An update was held but no email arrived.

Cause: wp_mail() is not delivering, the address list is wrong, or Notify for is set above the alert’s severity (held updates are Medium).

Fix:

  1. On Update Gate → Settings, check Email to and set Notify for to Medium and above.
  2. Click Send test notification and read Last delivery. “wp_mail() failed” points at your mail configuration; use an SMTP plugin or ask your host.
  3. Check the spam folder.

The webhook does not fire#

Symptom: Emails arrive but nothing reaches Slack or your webhook service.

Cause: The URL is not HTTPS (HTTP URLs are rejected on save), or the service returned an error.

Fix:

  1. Confirm the URL starts with https:// and save the settings again.
  2. Click Send test notification and read the webhook response code under Last delivery. A 4xx code means the service rejected the payload; a timeout means it could not be reached from the server.
  3. If your service needs a different JSON shape, use the pug_webhook_payload filter.

“Approve and install” asks for FTP credentials#

Symptom: Clicking Approve and install shows the WordPress connection information form.

Cause: WordPress cannot write to the plugins folder directly, so it asks for filesystem credentials, the same as any plugin install on that server.

Fix:

  1. Enter the credentials as you would for a normal update, or define FS_METHOD and the FTP constants in wp-config.php.
  2. The review stays Approved. Open it again and click Install approved package once the credentials are in place.

The daily check never runs#

Symptom: The Alerts screen says “The daily check has not run yet” for more than a day, or the dashboard widget never shows a last check.

Cause: WP-Cron is not running, often because DISABLE_WP_CRON is set without a system cron, or the site gets no visits.

Fix:

  1. Run the checks by hand from Update Gate → Alerts → Run all checks now to confirm they work.
  2. Set up a real cron job that calls wp cron event run --due-now or requests wp-cron.php every few minutes.
  3. Alternatively schedule wp pug scan-hidden and wp pug check-integrity directly from the system cron.

The License screen says licensing is not configured#

Symptom: Update Gate → License shows a warning that the StoreEngine product ID is not set.

Cause: A filter or constant on your site returns 0 for pug_storeengine_product_id / PUG_STOREENGINE_PRODUCT_ID, or you are running a development build without the ID.

Fix:

  1. Remove any code that defines PUG_STOREENGINE_PRODUCT_ID or filters pug_storeengine_product_id.
  2. Reinstall the release zip from your technoleet.dev account.

License cannot be verified after a store outage#

Symptom: The License screen shows “Could not verify your license and the grace period has ended.”

Cause: The site could not reach technoleet.dev for more than 14 days.

Fix:

  1. Check that the server can make outbound HTTPS requests to technoleet.dev (add it to WP_ACCESSIBLE_HOSTS if you block external requests).
  2. Open Update Gate → License and click Check License Status Now.
Was this article helpful?