Upgrade Compatibility Tool error messages

NOTE
The Upgrade Compatibility Tool is available for Adobe Commerce instances only.

This error message reference provides information about errors that can occur while executing the Upgrade Compatibility Tool.

Error messages are categorized by level (critical issues, errors, and warnings) and type (core code, custom code, and GraphQL schemas). Each type contains the following information:

  • Error code: The Adobe Commerce assigned identifier for the error message.
  • Error description: A description that summarizes the cause of the error.
  • Error suggested action: If applicable, provides guidance to troubleshoot and resolve the error.

Critical issues

Core code

These errors are reported when some of the core files are missing or do not match the original.

Error code
Error description
Suggested action
2001
Core file was not found
Run the composer install command from the project’s root directory.
2002
Core file was modified
Run the composer install command from the project’s root directory.
2003
Composer dependency is not installed
Missing composer dependency may potentially result in issues. Restore dependency by running composer require package_name.
2005
Core folder was not found
Run the composer install command from the project’s root directory.

Custom code

Critical errors are raised when the custom code is referencing entities that are not present in the target Adobe Commerce version. These errors are also reported when critical coding standards have been broken.

Error code
Error description
Suggested action
1110
Instantiating non-existent Adobe Commerce class/interface
Update code to use a class marked as @api. Instantiating non-existent Adobe Commerce class/interface.
1111
Extending from non-existent Adobe Commerce class
The extended class is no longer present in the codebase. Inheritance is not recommended way of extending Adobe Commerce functionality. Update code to use a class marked as @api.
1112
Importing non-existent Adobe Commerce class
Update code to use a class marked as @api.
1113
Loading non-existent Adobe Commerce class
Update code to use a class marked as @api.
1114
Using non-existent Adobe Commerce class
Update code to use a class marked as @api.
1214
Using non-existent Adobe Commerce constant
Consider introducing and using a private constant of the required value within the custom code instead.
1215
Overriding non-existent Adobe Commerce constant
Consider introducing and using a private constant of the required value within the custom code instead.
1216
Assignation of non-existent Adobe Commerce constant
Consider introducing and using a private constant of the required value within the custom code instead.
1312
Imported non-existent Adobe Commerce interface
Consider removing the inheritance or replacing it with the interface introduced in the scope of the customization.
1314
Used non-existent Adobe Commerce interface
Consider removing the inheritance or replacing it with the interface introduced in the scope of the customization.
1317
Inherited non-existent Adobe Commerce interface
Consider removing the inheritance or replacing it with the interface introduced in the scope of the customization.
1318
Implemented non-existent Adobe Commerce interface
Consider removing the inheritance or replacing it with the interface introduced in the scope of the customization.
1410
Call non-existent Adobe Commerce method
Update code to use a class marked as @api.
1514
Using non-existent Adobe Commerce property
Update code to use a class marked as @api.
1515
Overriding non-existent Adobe Commerce property
Update code to use a class marked as @api.
1516
Assignation of non-existent Adobe Commerce property
Update code to use a class marked as @api. Update the property access level to private if it can be used within a single class only.
5002
The opening PHP tag must be the first content in the file
Ensure there is no content in the file before the PHP opening tag.
5003
Function has been deprecated
Use a replacement suggested in the error message. If the message does not suggest a replacement, a close review is needed to select an alternative function or implementation.
5005
PHP syntax error
The code must be updated to comply with the PHP syntax standards.
5072
Possible Magento 2 design violation. Detected a typical Magento 1.x construction
Update construction to Magento 2 standards.
5076
Cannot use in namespace as it is reserved since PHP 7
Replace the reserved word in the namespace with a non-reserved keyword.
5077
Cannot use as class name as it is reserved since PHP 7
Replace the reserved class name with a non-reserved name.

DB Schema

DB Schema critical issues are reported if removed core tables or columns are referenced by custom constraints.

Error code
Error description
Suggested action
7009
Custom constraint is referencing a core table that was removed in the target version
Remove the constraint or update referenceTable and referenceColumn attributes
7010
Custom constraint is referencing a core column that was removed in the target version
Remove the constraint or update the referenceColumn attribute

GraphQL Schema

GraphQL Schema critical issues are raised if the schema items are not present in the target version.

Error code
Error description
Suggested action
3101
Type was removed
List all queries that are referencing this field. Check if these queries are used by the customization implementation. Update the client code to handle the changed query interface.
3102
Type removed from union
If the union type is used in the GraphQL request constructing or response processing implementation it may need to be updated.
3103
Field removed
Check if the field is referenced in the customization codebase. Adjust the implementation to correctly handle the new field type.
3105
Implemented interface removed
Check if the type implementing the removed interface is used in the customization. The implementation may need to be updated if it is relying on the removed interface.
3106
Value removed from enum
If the removed enum value is used in the GraphQL request constructing or response processing implementation it may need to be updated.
3107
Argument removed
Check if the field is used in the customization codebase. Remove the argument for this field.
3109
Directive removed
Check if the directive is used in the customization codebase. Adjust the implementation to remove the reference to the directive.
3110
Directive argument removed
Check if the directive is used in the customization codebase. Remove the directive argument.
3111
Directive repeatable removed
Check if the directive is used in the customization codebase. Adjust the implementation to handle the interface changes.
3112
Directive location removed
Check if the directive is used in the customization codebase. Adjust the implementation to handle the interface changes.
3201
Type changed kind
List all queries that are referencing this field. Check if these queries are used by the customization implementation. Update the client code to handle the changed query interface.
3203
Field changed kind
Check if the field is referenced in the customization codebase. Adjust the implementation to correctly handle the new field type.
3207
Argument changed kind
Check if the field is used in the customization codebase. Update the argument type for this field.
3303
Required input field added
The field should be added to the request if the query including this field is used for the customization.
3307
Required argument added
Check if the field is used in the customization codebase. The new required argument should be specified when using the field.
3310
Required directive argument added
Check if the directive is used in the customization codebase. Add the directive argument.

Errors

Custom code

Custom code errors are raised when custom code is using the Adobe Commerce entry points that are not considered/marked as @api. The preserved behavior of such entry points is not guaranteed. The customization should rely on @api entry points instead. The functionality that is based on non-API Adobe Commerce code should be tested after the upgrade. These errors are also reported when major coding standards have been broken.

Error code
Error description
Suggested action
1104
Using non-API class that is inheriting API interface
Classes that are not marked as @api may be changed. Consider updating the code to rely on the interface marked as @api instead. Otherwise, the functionality relying on this implementation should be tested after the upgrade.
1121
Extending from non-Adobe Commerce API class
The extended class is no longer present in the codebase. Inheritance is not recommended way of extending Adobe Commerce functionality. Update code to use a class marked as @api.
1122
Importing non-Adobe Commerce API class
The extended class is no longer present in the codebase. Update code to use a class marked as @api. Otherwise, the functionality relying on this implementation should be tested after the upgrade.
1123
Loading non-Adobe Commerce API class
The extended class is no longer present in the codebase. Update code to use a class marked as @api. Otherwise, the functionality relying on this implementation should be tested after the upgrade.
1124
Using non-Adobe Commerce API class
The extended class is no longer present in the codebase. Update code to use a class marked as @api. Otherwise, the functionality relying on this implementation should be tested after the upgrade.
1224
Using non-Adobe Commerce API constant
Constants that are not marked as @api may be changed. Consider introducing and using a private constant of the required value within the custom code instead.
1225
Overriding non-Adobe Commerce API constant
Constants that are not marked as @api may be changed. Consider introducing and using a private constant of the required value within the custom code instead.
1226
Assignation of non-Adobe Commerce API constant
Constants that are not marked as @api may be changed. Consider introducing and using a private constant of the required value within the custom code instead.
1322
Imported non-Adobe Commerce API interface
Interfaces not marked as @api may be changed. Consider removing this inheritance or replacing it with inheritance from the Adobe Commerce interface that is marked as @api or an interface introduced in the scope of customization code.
1324
Used non-Adobe Commerce API interface
Interfaces not marked as @api may be changed. Consider removing this inheritance or replacing it with inheritance from the Adobe Commerce interface that is marked as @api or an interface introduced in the scope of customization code.
1327
Inherited non-Adobe Commerce API interface
Constants that are not marked as @api may be changed. Consider introducing and using a private constant of the required value within the custom code instead.
1328
Implemented non-Adobe Commerce API interface
Interfaces not marked as @api may be changed. Consider removing this inheritance or replacing it with inheritance from the Adobe Commerce interface that is marked as @api or an interface introduced in the scope of customization code.
1420
Instantiating non-Adobe Commerce API class/interface
Classes that are not marked as @api may be changed. Consider updating the code to rely on the interface marked as @api instead. Otherwise, the functionality relying on this implementation should be tested after the upgrade. Also, the recommended way of retrieving an instance of the class is using DI. Consider using a factory if a new instance of the class is required.
1428
Possible dependency on implementation details.
Classes that are not marked as @api may be changed. Consider updating the code to rely on the interface marked as @api instead. Otherwise, the functionality relying on this implementation should be tested after the upgrade.
1429
Call non-Adobe Commerce API methods
Methods that are not marked as @api or are not declared within API class/interface may be changed. Even if the interface of the method is not updated in the new version, its behaviour or output can be different. Consider relying on an interface method. Otherwise, the functionality relying on this implementation should be tested after the upgrade.
1449
Call to non-interface method (that is present in implementation)
Methods that are not declared in the interface may be changed. Consider relying on an interface method. Otherwise, the functionality relying on this implementation should be tested after the upgrade.
1524
Using non-Adobe Commerce API property
Values of the properties that are not marked as @api may be changed. Consider relying on the API interface method instead.
1525
Overriding non-Adobe Commerce API property
Values of the properties that are not marked as @api may be changed. Consider relying on the API interface method instead.
1526
Assignation of non-Adobe Commerce API property
Values of the properties that are not marked as @api may be changed. Consider relying on the API interface method instead.
5004
Function without argument has been deprecated
Pass the input to validate as the first argument of the function.
5007
The use of certain functions is discouraged
Avoid using these functions.
5009
Template directives may not invoke methods. Only scalar array access is allowed
Remove method invocations from the template.
5010
Template @vars comment block contains invalid JSON
Fix invalid JSON.
5011
Template @vars comment block contains invalid label
Fix invalid label.
5012
Template @vars comment block is missing a variable used in the template
Add missing variable to @vars comment block.
5013
Avoid using self-closing tag with non-void html element
Use close tag instead.
5014
The "active" attribute is obsolete
The list of active modules is defined in deployment configuration.
5015
The <param> node is obsolete
Use <argument name="..." xsi:type="..."> instead.
5016
The <instance> node is obsolete
Use <argument name="..." xsi:type="object"> instead.
5017
The <array> node is obsolete
Use <argument name="..." xsi:type="array"> instead.
5018
The <item key="..."> node is obsolete
Use <item name="..." xsi:type="..."> instead.
5019
The <value> node is obsolete
Instead, provide the actual value as a text literal.
5020
Obsolete node: <supported_blocks>
To be replaced with <supported_containers>.
5021
Obsolete node: <block_name>
To be replaced with <container_name>.
5022
Factory name detected
Widget type should not begin with /.
5023
Obsolete ACL structure detected in line
Check lib/internal/Magento/Framework/Acl/etc/acl.xsd.
5024
Obsolete menu structure detected in line
Check app/code/Magento/Backend/etc/menu.xsd.
5025
Obsolete system configuration structure detected in file
Check app/code/Magento/Config/etc/system_file.xsd.
5026
Do not use "text/javascript" type attribute
Use only public members.
5028
Access to protected and private members of Block class is obsolete in phtml templates
Use only public members.
5031
Contains obsolete method
Use getConnection() method instead.
5042
Incorrect format of PHP class reference
Check that class is referenced using only camelCased letters, numbers, and no leading slash.
5043
Incorrect format of module reference
Check that module is referenced using only letters, numbers, underscores, and no leading slash.
5044
Class Zend_Db_Select is restricted
Suggested replacement: \Magento\Framework\DB\Select.
5045
Class Zend_Db_Adapter_Pdo_Mysql is restricted
Suggested replacement: \Magento\Framework\DB\Adapter\Pdo\Mysql.
5046
Class Magento\Framework\Serialize\Serializer\Serialize is restricted
Suggested replacement: Magento\Framework\Serialize\SerializerInterface.
5047
Class ArrayObject is restricted
Suggested replacement: Custom class, extended from ArrayObject with overwritten serialize/unserialize methods.
5048
Class Magento\Framework\View\Element\UiComponent\ArrayObjectFactory is restricted
Suggested replacement: Factory that creates custom class, extended from ArrayObject with overwritten serialize/unserialize methods.
5050
The block being referenced is removed
Remove reference to block.
5051
output="toHtml" is obsolete
Use output="1".
5052
The class \Magento\Framework\View\Element\Text\ListText is not supposed to be used in layout anymore
Remove class \Magento\Framework\View\Element\Text\ListText from layout.
5053
Call of method via layout instruction <action> is not allowed
Avoid using offending method in <action>.
5054
helper attribute contains /
Remove / from helper attribute.
5055
helper attribute does not contain ::
Add :: to helper attribute.
5056
Install scripts are obsolete
Use declarative schema approach in module's etc/db_schema.xml file.
5057
InstallSchema scripts are obsolete
Use declarative schema approach in module's etc/db_schema.xml file.
5058
InstallData scripts are obsolete
Use data patches approach in module's Setup/Patch/Data dir.
5059
Install scripts are obsolete
Create a class InstallData in the module's Setup folder.
5060
Upgrade scripts are obsolete
Use declarative schema approach in module's etc/db_schema.xml file.
5061
UpgradeSchema scripts are obsolete
Use declarative schema approach in module's etc/db_schema.xml file.
5062
UpgradeData scripts are obsolete
Use data patches approach in module's Setup/Patch/Data dir.
5063
Upgrade scripts are obsolete
Use data patches approach in the module's Setup/Patch/Data dir.
5064
Recurring scripts are obsolete
Create class Recurring in the module's Setup folder.
5065
‘data’ is in an invalid directory
Create a data patch within module’s Setup/Patch/Data folder for data upgrades or use declarative schema approach in module’s etc/db_schema.xml file for schema changes.
5066
‘sql’ is in an invalid directory
Create a data patch within module’s Setup/Patch/Data folder for data upgrades or use declarative schema approach in module’s etc/db_schema.xml file for schema changes.
5067
Nodes identified by XPath are obsolete
Obsolete XML pointed out in the error should be updated. Follow the suggestions from the error message.
5068
Directive {{htmlescape}} is obsolete
Use {{var}} instead.
5069
Directive {{escapehtml}} is obsolete
Use {{var}} instead.
5070
3rd parameter is not needed anymore for getChildHtml()
Remove 3rd parameter from call to getChildHtml().
5071
4th parameter is not needed anymore for getChildHtml()
Remove 4th parameter from call to getChildHtml().
5073
Legacy table names with slash must be fixed to direct table names
Use direct table name instead.
5075
Application modules should not use classes from test modules
Remove usage of classes from test modules.
5078
Class must be requested in constructor, otherwise compiler will not be able to find and generate these classes
Add class to constructor.
5079
Use of var class variables is discouraged
Avoid using ‘var’ to declare class variable.
5080
Possible raw SQL statement detected
Use repositories or data patches instead.
5081
The use of helpers in templates is discouraged
Use ViewModel instead.
5082
The use of $this in templates is deprecated
Use $block instead.
5083
Constants are not allowed as the first argument of translation function
Use string literal instead.
5085
The use of certain functions is discouraged
Use the alternative function advised on the message instead.
5087
PHP cross-version compatibility issue
Follow the suggestions from the message and check the migration guide.
5088
Optional parameters found after required ones
Move required parameters after optional ones.
5089
Method visibility final private found
Change method visibility from final private to only private.
5090
Magic method __set_state is not defined as static
Magic method __set_state must be defined as static.
5091
Class with __toString() method not inheriting from Stringable interface
Add Stringable interface to class with __toString() method.
5092
is_resource() method used for functions that now return Object
Change is_resource() to instanceof Object.
6001
jQuery.andSelf() removed
Use jQuery.addBack().
6002
jQuery $.bind and $.unbind are deprecated
Use $.on and $.off instead.
6003
jQuery method to subscribe to event is deprecated and shouldn’t be used
Use .on("event name", fn) method instead to subscribe to that event.
6003
jQuery method to trigger event is deprecated and shouldn’t be used
Use .trigger("event name") method instead to trigger that event.
6004
jQuery $.delegate and $.undelegate are deprecated
Use $.on and $.off instead.
6005
(jQuery.load() / jQuery.unload() / jQuery.error()) was removed
Use (.on("load", fn) / .on("unload", fn) / .on("error", fn)) instead.
6006
jQuery.size() removed
Use jQuery.length.
6007
jQuery.trim is deprecated
Use String.prototype.trim.
6008
(addButton, addContextToolbar, addMenuItem, addSidebar, file_browser_callback, insert_button_items, ‘inlite’ theme, ‘mobile’ theme, ‘modern’ theme) is removed
Update code to be compatible with tinymce5.
6009
jQuery.isFunction() is deprecated
In most cases, it can be replaced by [typeof x === “function”].
6009
jQuery.type() is deprecated
Replace with an appropriate type check like [typeof x === “function”].
6009
jQuery.isArray() is deprecated
Use the native Array.isArray method instead.
6009
jQuery.parseJSON() is deprecated
To parse JSON strings, use the native JSON.parse method instead.
6010
(jQuery.expr[":"], jQuery.expr.filters) is deprecated
Use jQuery.expr.pseudos instead.

DB Schema

DB Schema errors are raised if the database tables, columns, indexes or constraints, added or removed in the target Adobe Commerce version, may result into conflicts with custom database schema.

Error code
Error description
Suggested action
7001
The target core version introduces a table with the same name as a table declared by a custom module
Use the new core table (if suitable) or rename the custom table
7002
The core table that is extended by a custom module was removed in the target version
All removed core table references should be removed from the codebase
7003
The target core version introduces a column with the same name as a column declared by a custom module
Use the new core column (if suitable) or rename the custom column
7004
The core column that is extended by a custom module was removed in the target version
All removed core column references should be removed from the codebase
7005
The target core version introduces an index with the same referenceId as an index declared by a custom module
Remove (if duplicate to the introduced core index) or rename the custom index
7006
The core index that is extended by a custom module was removed in the target version
All removed core index references should be removed from the codebase
7007
The target core version introduces a constraint with the same name as a constraint declared by a custom module
Remove (if duplicate to the introduced core constraint) or rename the custom constraint
7008
The core constraint that is extended by a custom module was removed in the target version
Use the new core constraint (if suitable) or rename the custom constraint

Warnings

Core code

These warnings are reported when there are minor inconsistencies in the core codebase.

Error code
Error description
Suggested action
2004
Composer dependency version mismatch
Issue indicates that Composer dependency version in etalon and actual project is different. Update dependency by running composer update <package_name>.

Custom code

Custom code warnings are raised when the references to deprecated code are detected. Such references should be replaced with the supported extension points. Pay attention to the @see annotation of deprecated item for recommendations. These errors are also reported when minor coding standards have been broken.

Error code
Error description
Suggested action
1131
Extending from Adobe Commerce @deprecated class
The extended class will be removed in upcoming versions. Inheritance is not recommended way of extending Adobe Commerce functionality. Update code to use a class marked as @api.
1132
Importing Adobe Commerce @deprecated class
The extended class will be removed in upcoming versions. Consider using Adobe Commerce class marked as @api instead.
1133
Loading Adobe Commerce @deprecated class
The extended class will be removed in upcoming versions. Consider using Adobe Commerce class marked as @api instead.
1134
Using Adobe Commerce @deprecated class
The extended class will be removed in upcoming versions. Consider using Adobe Commerce class marked as @api instead.
1234
Using Adobe Commerce @deprecated constant
The deprecated constant will be removed in upcoming versions. Consider using a constant marked as @api or a private constant within your implementation instead.
1235
Overriding Adobe Commerce @deprecated constant
The deprecated constant will be removed in upcoming versions. Consider using a constant marked as @api or a private constant within your implementation instead.
1236
Assignation of Adobe Commerce @deprecated constant
The deprecated constant will be removed in upcoming versions. Consider using a constant marked as @api or a private constant within your implementation instead.
1332
Imported Adobe Commerce @deprecated interface
The deprecated interface will be removed in upcoming versions. Consider using an interface or class marked as @api instead.
1334
Used Adobe Commerce @deprecated interface
The deprecated interface will be removed in upcoming versions. Consider using an interface or class marked as @api instead.
1337
Inherited from Adobe Commerce @deprecated interface
The deprecated interface will be removed in upcoming versions. Consider removing the interface inheritance, using an interface marked as @api or an interface introduced within your implementation instead.
1338
Implemented Adobe Commerce @deprecated interface
The deprecated interface will be removed in upcoming versions. Consider removing the interface inheritance, using an interface marked as @api or an interface introduced within your implementation instead.
1430
Call not declared dataobject method
The magic methods that are not declared may be changed. Consider relying on interface methods instead.
1439
Call Adobe Commerce @deprecated method
The deprecated method will be removed in upcoming versions. Consider relying on methods declared in API interfaces instead.
1440
Method signature mismatch
A call or override of core method is detected with parameters, arguments or return type that does not match the method signature.
1534
Using Adobe Commerce @deprecated property
The deprecated method will be removed in upcoming versions. Consider relying on methods declared in API interfaces instead.
1535
Overriding Adobe Commerce @deprecated property
The deprecated property will be removed in upcoming versions. Consider relying on methods declared in API interfaces or using a private property within your implementation instead.
1536
Assignation of Adobe Commerce @deprecated property
The deprecated method will be removed in upcoming versions. Consider relying on methods declared in API interfaces instead.
5006
Proxies and interceptors MUST never be explicitly requested in constructors
The original class should be declared as a type of the constructor parameter. The Interceptor/Proxy class will be passed by the framework dependency injection implementation.
5074
Use of deprecated method getResource() to (save / load / delete) data detected.
Use a repository instead.
5086
Visibility is not declared on a constant
Declare the visibility on all constants.

GraphQL Schema

GraphQL Schema warnings are raised when the additional items are added to the schema in the new version. It is recommended to review the implementation to see if they should be used for requests.

Error code
Error description
Suggested action
3206
Argument default value changed
If the query is used in the customization the argument value may have to be specified explicitly.
3302
Type added to union
The type was added to the union. Check the implementation processing the result of the query returning this union type and ensure it is able to handle the added type.
3304
Optional input field added
Optional input field added. Check the implementation to ensure.
3305
Implemented interface added
The field can accept/provide more information that can be considered in the implementation.
3306
Value added to enum
A value was added to an enum. If clients contain a switch statement on the enum’s value and do not include a default case, this change might cause unexpected behavior.
3308
Optional argument added
If the query is using a new argument in the customization it may need to be added to the request.
83a60e0e-8849-4685-a8cd-c129ecd795ea