Troubleshooting

Common Errors

Plugin activation errors

"Plugin could not be activated because it triggered a fatal error"
Usually a PHP version issue. Check that your server is running PHP 8.1 or higher. Go to Tools → Site Health → Info to verify.

Tables not created after activation
The installer runs on the register_activation_hook. If another plugin caused an error during activation, the hook may not have fired. Deactivate all other plugins, reactivate MBS Attendance alone, then reactivate your other plugins one by one.

"Call to undefined function" errors in the log
Usually means a required PHP extension is missing. The most common missing extension is gd (required for image processing on badges and payslips). Contact your hosting provider to enable it.

Login failures

iOS app shows "Invalid credentials"
Double-check your WordPress username (not your email address — the username). Passwords are case-sensitive. Try logging into the WordPress dashboard in a browser with the same credentials to verify they work.

iOS app shows "Could not reach server"
The app cannot connect to your WordPress site. Check: (1) The URL is correct and includes https://. (2) The WordPress site is online. (3) Your phone has internet access. (4) The REST API is not blocked by a security plugin — some WAF plugins block unauthenticated REST API requests.

"REST API is not accessible" in Site Health
A security plugin or server configuration is blocking the WordPress REST API. MBS Attendance requires access to /wp-json/mbs-attendance/v1/. Whitelist this path in your security plugin.

Sync issues

Offline queue not emptying
The app has events queued but cannot sync. Check internet connectivity. If connected, check the WordPress site is online and the REST API is accessible. If the queue is very large (hundreds of events), let it sync overnight rather than forcing it.

Employee list not updating after adding new staff
Tap Refresh All Data in the app Settings tab to force a full sync. Employee data is cached locally and only refreshes on a full sync or app restart.

Payslip generation errors

"0 payslips generated" when you expected some
The most common cause is the pay period has not ended yet. The system only generates payslips for completed periods. Check the pay period start day on the department record — if it is set to 1, payslips for April cannot be generated until May 1 or later.

PDF download is corrupt or shows an error in Edge
See PDF issues for a full guide. The short answer: add Content-Transfer-Encoding: binary to the PDF download headers, or ask the user to try Chrome instead of Edge.

PAYE calculated as zero for all employees
Check that tax brackets exist for the current year in MBS Attendance → Tax Brackets. If the current year has no brackets, the system falls back to the previous year. If neither year has brackets, PAYE will be zero.