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. |