openrouter/moonshotai/kimi-k2.5
Known Shortcomings (11)
Sorted by occurrence count (most frequent first)
| # | Concept | AL Concept | Count | Affected Tasks |
|---|---|---|---|---|
| 1 | query-object-syntax | query-definition | 2 | CG-AL-H011, CG-AL-H017 |
|
Description: The model failed to generate valid AL code for a query object. The compilation errors at line 12:32 ('identifier expected' and '=' expected) indicate the model produced syntactically invalid AL for the query definition. The generated code was either empty or malformed - the model likely doesn't know the correct AL syntax for defining query objects with dataitems, columns, aggregation methods (Sum/Count), column filters, and ordering. AL query objects have a specific syntax with 'dataitem', 'column', and 'filter' elements nested inside an 'elements' section, which differs significantly from other AL object types.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0107, AL0104 |
||||
| 2 | event-subscriber-parameter-syntax | event-subscriber-definition | 1 | CG-AL-E010 |
|
Description: The model generated an event subscriber for the Item table's OnAfterInsertEvent but used incorrect parameter syntax. The AL0282 error 'The member referenced by event subscriber parameter is not found' indicates the model likely used an incorrect parameter type or reference in the EventSubscriber attribute or procedure signature. The correct pattern requires subscribing to Database::Item with the OnAfterInsertEvent and using a 'var Rec: Record Item' parameter. The model likely wrote something like [EventSubscriber(ObjectType::Table, Database::"Item", 'OnAfterInsert', '', false, false)] with an incorrect event name or parameter reference, when it should use 'OnAfterInsertEvent' as the event name.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0282 |
||||
| 3 | page-extension-cardpageid-override | page-extension-properties | 1 | CG-AL-E053 |
|
Description: The model failed to generate valid AL code for the page extension. The compilation errors at line 9 (syntax error, identifier expected) and line 14 (integer literal expected) along with other syntax errors suggest the model produced malformed AL code. The task requires using the BC 2025 Wave 1 feature to override the CardPageId property on a list page extension, which is a newer feature the model likely doesn't know about. The model appears to have generated syntactically invalid code, possibly using incorrect syntax for the CardPageId property override and/or the action definition with RunObject/RunPageLink properties.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0107 |
||||
| 4 | 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 was published 2. Most tests pass, but `TestDateToText_ValidDate` and `TestDateToText_FirstDayOfYear` fail 3. The test f
Correct Pattern:
Incorrect Pattern:
|
||||
| 5 | multiline-string-literals | string-operations | 1 | CG-AL-E050 |
|
Description: The model failed to correctly use AL multiline string literals. The compilation errors (AL0361 'Identifier was not properly terminated') indicate the model likely attempted to use raw multiline strings or incorrect syntax for multiline text literals in AL. In AL, multiline string literals are not natively supported in older runtimes, and the model should have either used the newer AL multiline string literal syntax (available in newer BC versions using triple-quoted strings or similar) or used string concatenation with carriage return/line feed characters. The errors at lines 7-10 suggest the model tried to embed literal newlines inside a single-quoted string, which AL does not support, causing the parser to fail at the unterminated string boundary.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0361 |
||||
| 6 | json-typed-getter-methods | json-api-usage | 1 | CG-AL-H014 |
|
Description: The model failed to generate valid AL code for JSON parsing. The compilation error AL0133 at line 35:35 indicates the model likely tried to use a method like AsValue().AsText() or similar incorrect pattern for extracting a boolean value, passing a Text where a Boolean was expected. In AL's JsonObject API, there are no direct methods like GetText(), GetInteger(), GetBoolean(), or GetArray() on JsonObject. Instead, you must use JsonObject.Get(key, JsonToken), then convert the token to JsonValue, and then call AsText(), AsInteger(), AsBoolean(), AsDecimal() etc. The model didn't understand the correct AL JSON API patterns. For SafeGetText with a default value, you need to check if Get() returns true and provide the default manually, as there's no overload with a default parameter.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0133 |
||||
| 7 | dictionary-of-list-return-type-syntax | collections-complex-types | 1 | CG-AL-H020 |
|
Description: The model generated code with syntax errors around line 84, which corresponds to the GroupByFirstLetter procedure that returns a Dictionary of [Text, List of [Text]]. This is a complex nested collection type in AL. The compilation errors (expecting 'end', identifier, procedure, etc.) suggest the model produced malformed AL syntax when dealing with the Dictionary of [Text, List of [Text]] return type or its implementation. The model likely struggled with the syntax for declaring and manipulating nested collection types (a Dictionary whose values are Lists), which is an advanced AL pattern. The generated code was not captured but the error pattern at line 84 indicates a structural syntax breakdown in the procedure body or signature for this complex return type.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 8 | dictionary-return-type-syntax | json-parsing-and-dictionary-types | 1 | CG-AL-M020 |
|
Description: The model failed to generate valid AL code for this task. The compilation errors at line 60 suggest the model struggled with the AL syntax for Dictionary of [Text, Text] as a return type or variable declaration, and/or with properly structuring the codeunit with multiple procedures involving JsonObject parsing, JsonArray iteration, and Dictionary return types. The 'Generated code not found' note and the syntax errors (expecting 'end', ']', 'procedure', identifier, etc.) indicate the model produced malformed AL code that couldn't parse correctly, likely around the ParseConfigSettings procedure that returns a Dictionary of [Text, Text].
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 9 | json-value-decimal-parsing | json-parsing | 1 | CG-AL-M022 |
|
Description: The model generated code that attempted to use 'JsonValue.IsDecimal' which does not exist in the AL JsonValue type. The correct approach to extract a decimal value from a JsonValue in AL is to use 'AsDecimal()' directly, or check the type using 'IsNumber' if a type check is needed before conversion. The error AL0132 indicates the model used a non-existent method on the JsonValue type. The model failed to generate valid AL code for parsing JSON responses from HTTP calls, specifically not knowing the correct JsonValue API methods available in Business Central's AL language.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0132 |
||||
| 10 | yaml-parsing-string-manipulation | text-parsing-and-json-handling | 1 | CG-AL-M021 |
|
Description: The model generated code with a syntax error at line 86, column 22 where a colon was expected. The generated code was not captured/found ('Generated code not found'), but the compilation errors indicate the model produced invalid AL syntax, likely mishandling string literals containing colons (YAML key: value separators) or incorrectly structuring variable declarations/procedure signatures. Since AL has no native YAML library, the model needed to implement custom string parsing for YAML format, and it appears to have produced syntactically invalid code - possibly using incorrect string concatenation, malformed expressions, or confusing YAML content strings with AL syntax.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 11 | date-format-specifier | format-function-date | 1 | CG-AL-E052 |
|
Description: The model likely used Format(Value) for DateToText without specifying a format that guarantees a 4-digit year. On the BC server locale, Format(Date) may produce a short date format like 'MM/DD/YY' or 'DD/MM/YY' which doesn't contain the full year '2025', causing Contains('2025') to fail. The model should have used Format(Value, 0, 9) for XML format or another explicit format string to ensure the full 4-digit year and unambiguous date components are present in the output.
Correct Pattern:
Incorrect Pattern:
|
||||