© 2015 X2Engine Inc.

Known Issues

From X2Engine
Revision as of 01:23, 5 December 2014 by Raymond Colebaugh (talk | contribs)
Jump to: navigation, search


The following is a list of problems that both arise under very specific circumstances and cannot be fixed by updating to the latest version (due to how they either prevent updating or cause fatal errors, or because updates cannot fix the issue).

Description Affected Instances How to Fix
Failed to update before 3.7.5 Instances between versions 3.0.1 and 3.7.5 Modify protected/components/UpdaterBehavior.php, and add the value "components/util/ResponseUtil.php" to the array $updaterFiles and proceed with the update:
public $updaterFiles = array(
    // ...
    "components/util/ResponseUtil.php",
);
Primary administrator user has lost permissions After updating to 4.0.1, having a username that isn't "admin" Run the following database command (SQL) on X2Engine's database, REPLACING {user} WITH THE ADMINISTRATOR'S USERNAME:
UPDATE `x2_auth_item` SET `bizrule`='return Yii::app()->user->name === "{user}";' WHERE `name`='admin';
DELETE FROM `x2_auth_cache` WHERE 1;

Once administrative access has been restored, update to 4.0.2 or later. Alternatively, you can use the command line update method.

"failed to copy from tmp" error message on update page Versions 3.5.5, and in some cases, from 3.5.6 to 3.7.5 There was a bug in 3.5.5 caused this particular error, but it was later fixed. If you are on 3.5.5, you can fix this by updating the updater utility to the latest version. In all other versions, the only two legitimate causes of this error that could be found were:
  • The list of updater dependency files to download is actually empty (this should almost never happen when the updater utility refreshes)
  • (In X2Engine Professional Edition): the installation's number of users exceeds the amount of users for which the license is authorized. This causes the server to return something other than the list of file digests, and the updater interprets it as being empty.

In both of these cases, the "tmp" folder simply does not get created due to the file list being empty (which was problematic). In the case that you are using X2Engine Open Source Edition, or the number of users does not exceed the number that your license is authorized for, you can attempt to circumvent this by creating the folder manually. In both cases, you can get past this issue if you have access to the CRM's files.

Cannot update, and requirements check script passes Installed at or updated to version 3.5.5 Update the updater utility to the latest version.
Prompt to update doesn't go away after updating X2Engine versions before 2.1 (check for the version number being the same as before the update) After updating, edit the file protected/config/X2Config.php. For the $version variable, put the current version between the pair of single quotes. For example, for version x.y.z, it should look like this:
$version = 'x.y.z';
Cannot log in after update X2Engine versions before 2.0, after updating to a version after 2.0 Empty the x2_sessions table (delete all records)
DELETE FROM `x2_sessions`;
Invalid path in "protected/runtime/..."
  • PHP built without posix library
  • Windows-based servers

This is caused by installing with a directory ownership mismatch that wasn't caught and reported in the requirements check. In some PHP builds, the necessary POSIX functions for running this check are unavailable due to one of the following reasons:

  • The --disable-posix flag is enabled and the POSIX library hasn't been separately installed
  • The server's operating system is Windows

To see if this is the case, upload requirements.php to your server again and search for "posix" in the phpinfo() output.

Installation error: deprecated function "mysql_escape_string"

All versions up to 2.2.1 on some servers

Install a newer version of X2Engine (recommended) or replace all instances of "mysql_escape_string" with "addslashes" in initialize.php, or simply remove those function calls. Note that if you perform the latter action, you must ensure that the values you put in the "Application Name" and "Administrator Email" fields of the installation form do not contain any apostrophes (otherwise, the resulting installation will be broken).

"No input file specified"

All versions, on GoDaddy hosting

All web applications featuring human-friendly URLs (i.e. Joomla!, Drupal, Wordpress) will have this issue on GoDaddy. The error is caused by the URL rewriting engine being disabled in GoDaddy's hosting environment. See the following articles on how to rectify the issue using .htaccess overrides:

Update notifications do not work, cannot enable them

Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 2.0

  • Set value of the column unique_id in table x2_admin to "none", i.e.
    UPDATE `x2_admin` SET `unique_id`='none'
    
    Then, go to "Updater Settings" ("General Settings" in versions earlier than 2.0), ensure "Enable Software Update Notifications" is checked, and submit the form.
  • Run the update manually if all else fails
Cannot view or create quotes

Installed at 1.6.1 or earlier and updated to a version in the range 1.6.5 - 1.6.6

Run the following SQL:

Versions earlier than 2.0:

INSERT INTO x2_fields (modelName, fieldName,  attributeLabel,  modified, custom, type,  required, readOnly, linkType, searchable, relevance) 
 VALUES ("Quote", "products",  "Products",  0,  0, "varchar", 0,  0,  NULL,  0, ""), 
        ("Quote", "existingProducts", "Existing Products", 0,  0, "varchar", 0,  0,  NULL,  0, "")

Versions 2.0 and later:

INSERT INTO x2_fields (modelName, fieldName,  attributeLabel,  modified, custom, type,  required, readOnly, linkType, searchable, relevance,isVirtual) 
 VALUES ("Quote", "products",  "Products",  0,  0, "varchar", 0,  0,  NULL,  0, "", 1),
        ("Quote", "existingProducts", "Existing Products", 0,  0, "varchar", 0,  0,  NULL,  0, "", 1)