Blank Admin Dashboard

Problem

After updating WHMCS to a new version, the Admin Dashboard appears blank and widgets will not load.

For other issues with blank pages, see Blank or Partially-Rendered Pages.

Cause

There may be a problem with the table collation values.

Troubleshooting

To further troubleshoot the issue:

  1. Go to Configuration () > System Settings > General Settings and choose the Other tab.
    The Other tab in General Settings

  2. Enable SQL Debug.

  3. Return to the Admin Dashboard. The problem will persist.

  4. Go to Configuration () > System Logs.

  5. Make a note of any MySQL® errors. For example:

    Smarty Error: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (latin1_general_ci,IMPLICIT) and (latin1_swedish_ci,IMPLICIT) for operation '=' (SQL: select count(tblorders.id) as aggregate from tblordersinner join tblorderstatuses on tblorders.status = tblorderstatuses.title where tblorderstatuses.showpending = 1)

    or

    Smarty Error: SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '=' (SQL: select count(tblorders.id) as aggregate from tblordersinner join tblorderstatuses on tblorders.status = tblorderstatuses.title where tblorderstatuses.showpending = 1)

Solution

To resolve the error, edit the MySQL database structure to ensure that both tables have the same collation setting.

Before you make changes to the database, you must back it up.

If, after you make these changes, the error persists, or if you are not comfortable making these changes to your WHMCS database, create a support ticket with WHMCS Technical Support.

Examples

The examples below describe two possible scenarios for this issue.

Example 1

In this example, the following collation settings are different:

tblorders = latin1_general_ci
tblorderstatuses = latin1_swedish_ci

For success, these values must match.

To do this, you could run the following command against the database:

ALTER TABLE tblorderstatuses CONVERT TO CHARACTER SET latin1 COLLATE latin1_general_ci;

Example 2

In this example, the following collation settings are different:

tblorders = utf8_general_ci
tblorderstatuses = utf8_unicode_ci

For success, these values must match.

To do this, you could run the following command against the database:

ALTER TABLE tblorders CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Last modified: October 30, 2024