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:
These errors are reported when some of the core files are missing or do not match the original.
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 critical issues are reported if removed core tables or columns are referenced by custom constraints.
GraphQL Schema critical issues are raised if the schema items are not present in the target version.
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
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 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.
These warnings are reported when there are minor inconsistencies in the core codebase.
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 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.