Skip to content
Impulse SoftwareDOCS
Get modules

ImpulseCore

Troubleshooting

Common ImpulseCore issues, what causes them, and where to look first. Anything not listed: the Audit tab is the catch-all — filter to level error.

A module says ImpulseCore isn’t installed or isn’t loaded

Section titled “A module says ImpulseCore isn’t installed or isn’t loaded”
Install

You’re activating a module before Core is in place, or while Core is deactivated. Depending on the module, activation stops with a message telling you to install or activate ImpulseCore, or the module activates with a note that it isn’t registered with ImpulseCore — and then doesn’t work. Install the impulsecore addon, activate it under System Settings → Addon Modules, then deactivate and activate the module again so it registers with Core.

“Module ‘…’ requires ImpulseCore >= X, but installed Core is Y”

Section titled ““Module ‘…’ requires ImpulseCore >= X, but installed Core is Y””
Install

The module’s manifest pins a Core minimum version that’s newer than what you have installed — some modules stop activation with this message, others activate and show it as a note. Upgrade Core — upload the new release over the existing files and open Addons → ImpulseCore once so WHMCS runs Core’s upgrade (schema changes apply in place) — then activate the module again. Modules & Licensing → Modules lists any module release that is waiting for a newer Core; Core’s upgrade registers those releases for you.

Install

ionCube Loader missing or wrong-version. Check php -m | grep ionCube with the PHP version WHMCS runs on; install ionCube Loader 13+ for that PHP version if absent — Plesk and cPanel both let you enable it from their PHP settings. Restart PHP-FPM after enabling. If instead the addon shows “Core install is broken: no admin tab classes could be loaded”, the lib/ files did not upload completely — upload modules/addons/impulsecore/ again.

Cron shows “Cron is stale” or every task is stale

Section titled “Cron shows “Cron is stale” or every task is stale”
Cron

The Core cron line isn’t firing. Verify with:

SELECT MAX(started_at) FROM mod_impulsecore_cron_log;

If empty or stale, debug at the system level:

  • Confirm the crontab line exists: crontab -l | grep impulsecore
  • Confirm the cron user can read the WHMCS files, including configuration.php.
  • Run the cron script by hand from that user; any error message lands on stdout.
  • Check the system mail or journalctl for cron output.

Operations → Cron → Automation & Setup shows the exact line to install for your server.

One task is overdue or stale while others are healthy

Section titled “One task is overdue or stale while others are healthy”
Cron

That specific task is failing or running too long. Open Operations → Cron → Recent runs — each run shows its status, duration and error. Failed runs also write a cron.task.failed entry at level error to the audit log under the module’s slug, with the error in its context. Most common causes: the module’s files were removed or only partly uploaded, so the task’s handler can’t be loaded (“Handler class not loadable: …”, or “No handler class registered for task” when Core found no handler class for it at all); the task is hitting its own timeout (recorded as timeout); or the module’s servers or provider API aren’t reachable.

Run the runner by hand to tick immediately and see the summary:

Terminal window
php /path/to/whmcs/modules/addons/impulsecore/cron/runner.php

Module activated but isn’t active in Core’s Modules tab

Section titled “Module activated but isn’t active in Core’s Modules tab”
Module

The module’s activate hook didn’t register it with Core, or Core held it back. Read the message WHMCS showed when you activated the module — modules append the reason Core gave. Possible causes:

  • Core wasn’t installed or active when the module was activated. Activate Core, then deactivate and reactivate the module.
  • Core is older than the module needs. The module is listed as registered, not active, the Modules tab shows an Update ImpulseCore notice, and the audit log has a module.activate.core_min_version_unmet error. Update Core.
  • The module’s manifest is missing or unreadable — usually an incomplete upload. Upload the module’s files again.

Manually triggering re-registration: deactivate then reactivate the module’s addon entry. Idempotent.

Module

Hook subscriptions live in mod_impulsecore_hook_subscriptions, installed from the handler classes in each module’s lib/Hooks/ directory when the module is activated or upgraded. Operations → Hooks lists them, or check:

SELECT module_slug, event, handler_class FROM mod_impulsecore_hook_subscriptions
ORDER BY module_slug, event;

If the row you expect is missing, deactivate and reactivate the module so Core re-reads its handlers. If the row is present but the handler isn’t running, the audit log shows a hook.handler.error entry with the exception message, or hook.handler.missing if the class can’t be loaded.

Security

The first security_collect tick hasn’t happened yet (it runs daily). Force one:

UPDATE mod_impulsecore_cron_tasks SET next_run_at = NOW()
WHERE name = 'security_collect';

If snapshots still don’t appear after Core’s next cron tick, check that the module is active under Modules & Licensing → Modules, and look at the latest security_collect run in Operations → Cron → Recent runs. A module that ships no Collector shows an empty state on its Security tab instead of snapshots.

“Snapshot stale” or “collector error” warnings on a host

Section titled ““Snapshot stale” or “collector error” warnings on a host”
Security

security_freshness_check raised an error-level alert because the host’s snapshot hasn’t refreshed in >3 days, or the Collector errored on recent attempts. The snapshot’s collector_error column shows the verbatim error. Most common: the module couldn’t reach the host’s admin proxy — check that your WHMCS server can still reach the host on the admin proxy port and that the proxy is healthy (Core’s 15-minute health check writes admin_proxy.unreachable to the audit log when it isn’t). An error that also says break-glass SSH is disabled is expected: the module tried the admin proxy, which failed, and SSH is correctly off. Fix the proxy rather than turning SSH on.

Security

An amber strip at the top of the admin Security tab warns when cve_feed_refresh hasn’t succeeded in >6h, and a per-source warning appears when Ubuntu USN or CISA KEV data is over 26 hours old, or NVD over 50 hours. Usually a network problem reaching Ubuntu USN, CISA KEV, or NVD from the WHMCS server. Check Operations → Cron → Recent runs for the failed run’s error, and the audit log for security.feed.usn_empty / security.feed.kev_empty entries. Grab CVE now on ImpulseCore → Security runs a refresh on demand.

Install

Open Modules & Licensing → Licenses and click Re-check now. If the licensing server can’t be reached, the license stays in its 7-day grace — check that the WHMCS server can make outbound HTTPS requests. If the licensing server answers Invalid, the license enters its 48-hour grace and the tab asks you to check the license’s status and key. Common causes: the key was mistyped or replaced (a reissued key replaces the old one), or the license is tied to a different domain, IP address or install path — check your WHMCS System URL, and the license’s details in the license portal. See Licensing for grace periods and moving a license.

The Audit tab in ImpulseCore is the single search surface across every module — filter to level error to see anything currently misbehaving. Then email [email protected] with the relevant audit context and the version and system details from ImpulseCore → Help. The help center at support.impulsesoftware.com has more guides.

Contact support Back to docs