openrouter/minimax/minimax-m2.5
Known Shortcomings (18)
Sorted by occurrence count (most frequent first)
| # | Concept | AL Concept | Count | Affected Tasks |
|---|---|---|---|---|
| 1 | interface-definition-syntax | interface-definition | 2 | CG-AL-E008, CG-AL-H015 |
|
Description: The model failed to generate any valid AL code (generated code not found / empty). The compilation errors (AL0107: identifier expected, AL0198: expected application object keyword) indicate the model likely produced malformed or empty output instead of a proper AL interface definition. AL interfaces do not use numeric IDs (unlike codeunits, tables, etc.), and the task description incorrectly mentions 'ID 70000' for an interface. However, the core issue is that the model did not produce a valid interface definition at all. A correct AL interface would use the syntax: interface "Payment Processor" { ... } without an ID number. The model also needed to produce a mock codeunit implementing the interface for the tests to work, but it failed to generate even the basic interface.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0107, AL0104 |
||||
| 2 | text-char-conversion-copystr | string-manipulation | 1 | CG-AL-E005 |
|
Description: The model generated code that attempts to use a Text value where a Char is expected, likely in the CapitalizeFirstLetter procedure. In AL, indexing into a Text variable (e.g., InputText[1]) returns a Char, and operations like UpperCase() work on Text, not Char. The model likely wrote something like `UpperCase(InputText[1])` or tried to assign a Text result back to a Char position without proper conversion using CopyStr and Format. The correct pattern is to use CopyStr to extract substrings and UpperCase on Text values, then concatenate the results.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0122 |
||||
| 3 | page-object-definition | card-page-creation | 1 | CG-AL-E002 |
|
Description: The model failed to generate valid AL code for a card page. The generated code file appears to be empty or contain invalid content that doesn't even start with a proper AL page object declaration. The compilation errors (AL0104 'Syntax error, } expected' and AL0198 'Expected one of the application object keywords') at line 10 indicate the model produced something that is not a valid AL object definition. The task asked for a straightforward card page (ID 70001) based on a table (ID 69001) with four fields, which is a fundamental AL development task.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 4 | event-subscriber-attribute-syntax | event-subscriber | 1 | CG-AL-E010 |
|
Description: The model generated an EventSubscriber attribute with only 3 arguments, but the AL compiler requires more arguments for the EventSubscriber attribute. In Business Central AL, the [EventSubscriber] attribute for a table event like OnAfterInsertEvent requires specifying ObjectType, ObjectId, ElementName, SkipOnMissingLicense, and SkipOnMissingPermission parameters (or the newer named-parameter syntax). The model likely wrote something like [EventSubscriber(ObjectType::Table, Database::Item, 'OnAfterInsertEvent')] with only 3 positional arguments, whereas the correct syntax requires additional parameters such as the element name (empty string for table triggers) and boolean flags, e.g., [EventSubscriber(ObjectType::Table, Database::Item, 'OnAfterInsertEvent', '', false, false)].
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0238 |
||||
| 5 | page-extension-and-table-extension-generation | al-object-structure | 1 | CG-AL-E006 |
|
Description: The model failed to generate any valid AL code. The task required creating a page extension (ID 70000) extending the Customer Card (page 21) along with a table extension to add new fields ('Preferred Contact Method', 'Customer Notes', 'VIP Customer') to the Customer table. The compilation errors (AL0104 syntax error at line 3, AL0198 expecting an application object keyword) indicate the model produced malformed or empty/incomplete output that doesn't even begin with a valid AL object declaration. The model needed to produce both a tableextension (to add the fields to the Customer table) and a pageextension (to display them on the Customer Card), but it apparently generated no recognizable AL code at all.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 6 | dictionary-iteration-syntax | dictionary-type-usage | 1 | CG-AL-H018 |
|
Description: The model generated code that uses 'Key' as a variable or keyword in the context of iterating over a Dictionary of [Text, Text], which is not valid AL syntax. The compilation error AL0519 at line 45 indicates the model wrote something like 'Key' when iterating over dictionary entries in the Build() procedure. In AL, to iterate over a Dictionary you must use the Keys() method to get a List of keys and then iterate with foreach, e.g., 'foreach HeaderKey in RequestHeaders.Keys() do'. The model likely attempted an invalid pattern for dictionary iteration.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0519 |
||||
| 7 | complex-codeunit-syntax-structure | codeunit-procedure-syntax | 1 | CG-AL-H023 |
|
Description: The model generated code with a syntax error at line 142 - likely an incomplete or malformed procedure body, missing 'end' keyword, or incorrect nesting of begin/end blocks. The compilation errors (AL0104: 'end' expected, ';' expected, '}' expected) all point to line 142 column 33, indicating the model produced structurally invalid AL code in a complex codeunit with 10 procedures. The generated code was not captured/found but the errors clearly indicate the model failed to produce syntactically valid AL for this complex multi-procedure codeunit with interfaces, RecordRef/FieldRef manipulation, and various parameter types.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 8 | al-syntax-semicolons-and-control-flow | codeunit-implementation | 1 | CG-AL-M005 |
|
Description: The model generated AL code with multiple syntax errors including missing semicolons, incorrect control flow structures (missing 'until' in repeat-until loops), and malformed code blocks. The errors at lines 78, 101, 107, 110, 177, 192, and 195 indicate the model produced syntactically invalid AL code with issues in loop constructs, statement termination, and object structure. The generated code was not even captured ('Generated code not found'), but the compilation errors clearly show the model failed to produce valid AL syntax for a codeunit implementing HTTP client patterns, retry logic, and JSON handling.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0111 |
||||
| 9 | report-dataset-column-syntax | report-definition | 1 | CG-AL-M007 |
|
Description: The model generated a report with incorrect dataset/column syntax. The compilation errors at lines 30 and 40 indicate the model used incorrect syntax for defining report columns in the dataset section. The errors 'field expected', '(' expected', ')' expected' suggest the model likely used an incorrect pattern for column definitions in the report's dataset, possibly using expression-based columns or incorrect field reference syntax instead of the proper AL report column() syntax. The task and tests are valid - the tests check both the report existence/execution and a separate MockCalculator codeunit for business logic. The model failed to produce syntactically correct AL code for the report object.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 10 | al-procedure-parameter-syntax | procedure-definition | 1 | CG-AL-M008 |
|
Description: The model generated AL code with syntax errors at specific line positions (lines 48, 80, 88) where commas were expected. The AL0104 errors at these positions indicate the model likely used incorrect parameter syntax in procedure definitions - possibly using semicolons instead of commas in certain contexts, or incorrectly formatting parameter lists. The errors occur in the generated codeunit file (CG-AL-M008.al), not in the test file. The task and test definitions are valid; the model simply produced syntactically incorrect AL code for procedure parameters or variable declarations. In AL, procedure parameters are separated by semicolons (not commas), but certain contexts like array indexers or built-in function calls use commas. The model likely confused these contexts or used incorrect syntax in expressions within the procedure bodies.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 11 | onprem-scope-file-operations-and-boolean-operators | extension-development-restrictions | 1 | CG-AL-M009 |
|
Description: The model made two categories of errors: (1) It used File system operations (Exists, Open, Create, Write, Close) which have scope 'OnPrem' and cannot be used in Extension development. This was likely part of the 'logging and audit trail functionality' requested in the task - the model tried to implement file-based logging instead of using table-based logging or Message/Error patterns suitable for extensions. (2) It used incorrect boolean/logical operators on Text and Integer types (e.g., 'Text or Text' instead of '(Text = '''') or (Text = '''')' and 'Integer and Integer' instead of proper boolean expressions). These are fundamental AL knowledge gaps about the Extension development target restrictions and proper AL operator usage.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0296 |
||||
| 12 | multi-object-al-syntax | al-object-definition | 1 | CG-AL-M010 |
|
Description: The model generated code with syntax errors at line 53 of the output file. The compilation errors (AL0104, AL0114, AL0198) all point to line 53, suggesting the model produced malformed AL syntax in a single file containing multiple objects. The errors about expecting ')', ';', '}', integer literals, identifiers, '{', and application object keywords indicate the model likely wrote an incorrect field definition, procedure signature, or option value syntax (possibly involving spaces in option values without proper quoting, or incorrect procedure parameter syntax like using Text[100] in a way the parser couldn't handle). The generated code was noted as 'not found' in the prompt but the compilation errors clearly show the model produced code that failed to parse. Given the task requires multiple AL objects (2 tables, 1 page, 1 codeunit) with proper syntax across all of them, the model failed to produce syntactically valid AL code.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 13 | json-token-iteration | json-handling | 1 | CG-AL-M020 |
|
Description: The model generated code that uses an 'Iterator' type which does not exist in AL. The compilation error AL0134 indicates the model tried to use 'Iterator' as a type, likely when iterating over JSON tokens or array elements. In AL/Business Central, JSON array iteration is done using JsonArray.Get(Index, JsonToken) with a for loop over JsonArray.Count, not with an iterator pattern. The model lacks knowledge of proper AL JSON API patterns for iterating arrays and extracting values from JsonObject/JsonArray/JsonToken/JsonValue types.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0134 |
||||
| 14 | json-object-key-iteration | json-api-usage | 1 | CG-AL-M021 |
|
Description: The model used 'Key' as a variable or keyword in an invalid context when iterating over JsonObject keys. In AL, to iterate over JsonObject members you must use JsonObject.Keys (which returns a List of Text) and iterate with a foreach loop using proper variable declarations. The model likely wrote something like 'Key : ...' or used 'Key' as a reserved word incorrectly at lines 58, 91, 126, and 167, causing AL0519 errors ('Key' is not valid value in this context). The correct pattern is to declare a Text variable (e.g., KeyName) and use 'foreach KeyName in JsonObj.Keys do' or use JsonObject.Get(KeyName, JToken) pattern.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0519 |
||||
| 15 | page-extension-cardpageid-override | page-extension-syntax | 1 | CG-AL-E053 |
|
Description: The model generated syntactically invalid AL code for a page extension. The compilation errors indicate fundamental syntax issues starting at line 3 (likely incorrect property or keyword placement) and line 12 (incorrect action definition syntax). The task requires using the BC 2025 Wave 1 feature to override CardPageId on a list page extension, which is a newer feature the model likely doesn't know about. The model appears to have produced malformed AL code with incorrect syntax for the pageextension object, the CardPageId property placement, and/or the action definition structure.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 16 | table-field-property-usage | table-definition | 1 | CG-AL-H003 |
|
Description: The model generated a table definition for 'CG Discount Result' (ID 70203) where it incorrectly applied the 'TableRelation' property on a field where it cannot be used in that context. The compilation error AL0124 indicates 'The property TableRelation cannot be used in this context', meaning the model likely added a TableRelation property on a field type (such as an Integer or Decimal field) where it is not applicable, or used it incorrectly. The model failed to understand which field types and contexts support the TableRelation property in AL table definitions. Additionally, the generated code was not captured/found properly, but the compilation error clearly points to line 50 of the generated .al file where an invalid TableRelation property was placed.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0124 |
||||
| 17 | parse-failure | unknown | 1 | CG-AL-E052 |
|
Description: Failed to parse LLM analysis response: Looking at the failure details: 1. The generated code compiled successfully and most tests passed 2. Only `TestDateToText_ValidDate` and `TestDateToText_FirstDayOfYear` failed 3. The test for `TestDa
Correct Pattern:
Incorrect Pattern:
|
||||
| 18 | calcfields-with-setloadfields | flowfield | 1 | CG-AL-M023 |
|
Description: The model's SumItemInventory procedure returns 0 instead of the correct sum. This indicates the model likely either forgot to call CalcFields(Inventory) before reading the Inventory FlowField value, or failed to properly accumulate the sum. When using SetLoadFields for partial record loading, FlowFields like Inventory are not loaded by SetLoadFields and must be explicitly calculated via CalcFields before their value can be read. The model appears to not understand this interaction between SetLoadFields and CalcFields.
Correct Pattern:
Incorrect Pattern:
|
||||