gemini/gemini-3-pro-preview
Known Shortcomings (23)
Sorted by occurrence count (most frequent first)
| # | Concept | AL Concept | Count | Affected Tasks |
|---|---|---|---|---|
| 1 | codeunit-syntax-structure | codeunit-definition | 3 | CG-AL-M005, CG-AL-E052, CG-AL-E051 |
|
Description: The model generated AL code with syntax errors - specifically missing 'end', ';', and '}' tokens at line 106. This indicates the model failed to properly structure the codeunit with correct AL syntax, likely producing malformed procedure bodies, incomplete begin/end blocks, or incorrect nesting. The generated code was not found/empty in the provided output, but the compilation errors at a specific line (106) with multiple syntax expectations suggest the model produced code that was structurally incomplete or had mismatched begin/end pairs. This is a fundamental AL syntax knowledge gap where the model couldn't produce a syntactically valid codeunit with multiple procedures involving HttpClient, JsonObject, and error handling patterns.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104, AL0111 |
||||
| 2 | multiline-string-literals | al-string-syntax | 1 | CG-AL-E050 |
|
Description: The model attempted to use backtick (`) characters for multiline string literals, likely borrowing syntax from other languages like JavaScript or Python. AL does not support backtick-delimited strings. In AL, multiline text must be constructed either using string concatenation with CR/LF characters, or using the newer AL multiline string literal syntax (available in newer BC versions) which uses single quotes with line breaks inside them. The compilation errors at line 13 with 'Unexpected character `' clearly indicate the model used backtick syntax which is invalid in AL.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0183 |
||||
| 3 | inherent-permissions-syntax | codeunit-properties | 1 | CG-AL-H019 |
|
Description: The model generated incorrect values for InherentEntitlements and InherentPermissions properties. The task specifies 'X' for both, which means Execute. However, the model likely wrote something like 'codeunit "CG Internal Service" = X' or used 'codeunit' as a permission value instead of the correct syntax. The valid values for InherentEntitlements and InherentPermissions are permission sets like 'X' (Execute), 'R' (Read), 'RIMD' etc., not object type references. The AL0776 error 'The identifier codeunit is not a valid permission value' indicates the model confused the property syntax, possibly writing something like 'InherentPermissions = codeunit 70019 = X' instead of simply 'InherentPermissions = X'.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0776 |
||||
| 4 | query-crossjoin-column-datasource | query-object-definition | 1 | CG-AL-H017 |
|
Description: The model failed to generate any valid code (generated code not found), and when it did attempt generation, it produced a query where a Column did not have a valid data source or the Method property set to Count. In AL query objects with CrossJoin, the second dataitem is not nested under the first but is at the same level, and columns must correctly reference their parent dataitem's fields. The model likely struggled with the complex query structure involving CrossJoin between two instances of the same table ('Dimension Value'), proper column-to-dataitem binding, and the LeftOuterJoin with a Count method column. The AL0353 error at line 42 indicates a column was defined without properly referencing a source field from its parent dataitem.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0353 |
||||
| 5 | complete-codeunit-generation | recordref-fieldref-dynamic-manipulation | 1 | CG-AL-H022 |
|
Description: The model failed to generate any valid AL code at all. The 'Generated code not found' note and the compilation error at line 60 (syntax error expecting '}') suggest the model either produced empty/malformed output or failed to produce a complete codeunit. The task required creating a complex codeunit with 8 procedures using RecordRef/FieldRef patterns, error handling with TryFunction-like patterns, and dynamic record manipulation. The model was unable to produce syntactically valid AL code for this complex task.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 6 | yaml-parsing-string-manipulation | text-parsing-and-json-handling | 1 | CG-AL-M021 |
|
Description: The model generated AL code with multiple syntax errors including semicolon issues (AL0111) at various lines, likely from incorrect use of string operations or variable declarations, misuse of 'Key' as a variable name (AL0519 - reserved word), and general structural syntax errors. The generated code was not captured but the compilation errors indicate the model struggled with: (1) proper AL syntax for text splitting/parsing operations, (2) using 'Key' as a variable name which is reserved in AL, (3) proper foreach/iteration syntax over JSON objects, and (4) general AL procedure structure. The task and tests are valid - this is a complex string parsing task that requires manual YAML parsing since AL has no built-in YAML library, and the model failed to produce syntactically correct AL code.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0111 |
||||
| 7 | 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:
|
||||
| 8 | multiline-string-literals | text-literal-syntax | 1 | CG-AL-E050 |
|
Description: The model attempted to use actual multiline string literals (spanning multiple lines in source code) which is not valid AL syntax in most BC versions. The AL0360 errors ('Text literal was not properly terminated') indicate the model wrote string literals that span across lines without proper termination. In AL, multiline text must be constructed using string concatenation with CR/LF characters, or using the newer AL multiline string literal syntax (triple-quoted strings) if supported. The model likely wrote something like 'SELECT CustomerNo, Name, Balance\nFROM Customer...' as a raw multiline string in the source, which the compiler rejected. The task explicitly asked for multiline string literals, but the model didn't know the correct AL syntax for achieving this (e.g., using concatenation with carriage return/line feed characters, or the proper triple-single-quote syntax for multiline literals if the runtime version supports it).
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0360 |
||||
| 9 | complex-report-with-helper-codeunit | report-definition-and-codeunit-generation | 1 | CG-AL-M007 |
|
Description: The model failed to generate any valid AL code at all. The task required creating both a Report 70001 'Sales Performance Analysis' and a helper codeunit 'CG-AL-M007 Mock Calculator' that the test file references. The generated code appears to be empty or syntactically broken (compilation error at line 31 with 'Syntax error, } expected' and 'App generation failed'). The model did not understand how to produce a complete solution consisting of: (1) a report object with multiple data items (Customer, Sales Header, Sales Line), request page, and triggers, and (2) a mock calculator codeunit with procedures like Initialize(), AddSalesLine(), GetRunningTotalByCustomer(), GetRunningTotalByRegion(), CalculateAverageOrderValue(), GetCustomerRank(), GetTopProduct(), GetProductSalesQuantity(), CalculateYoYComparison(), CalculateOrderFrequency(), GetTotalSales(), and GetCustomerCount(). The model either produced no output or produced fundamentally broken AL syntax.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 10 | multiline-string-literals | string-operations | 1 | CG-AL-E050 |
|
Description: The model failed to properly use AL multiline string literals. The task requires using multiline string literals (a relatively newer AL feature), but the model appears to have attempted to use single-quoted strings with embedded newlines or incorrect syntax, resulting in AL0360 'Text literal was not properly terminated' errors. In AL, multiline text literals are not supported via traditional single-quoted strings spanning multiple lines. The model likely tried to break a string across lines without proper termination. The correct approach would be to either use string concatenation with CR/LF characters, or use the newer AL multiline string literal syntax (triple-quoted strings or similar), or use StrSubstNo/TextConst patterns. The compilation errors at lines 22-30 indicate the model wrote string literals that span multiple lines without proper AL syntax.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0360 |
||||
| 11 | al-if-then-case-syntax | control-flow-syntax | 1 | CG-AL-H001 |
|
Description: The model generated AL code with multiple syntax errors around control flow statements (if/then/else, case). The compilation errors indicate missing 'then' keywords after 'if' conditions, orphaned 'else' statements due to incorrect semicolon placement before 'else', and mismatched 'end' statements. These are fundamental AL syntax issues where the model likely confused AL syntax with another language (e.g., using curly braces or missing 'then' keyword, placing semicolons before 'else' in if-then-else chains). The generated code was not captured but the errors clearly point to the model failing to produce syntactically valid AL control flow structures.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 12 | procedure-declaration-syntax | codeunit-procedure-definition | 1 | CG-AL-H009 |
|
Description: The model generated AL code with syntax errors around procedure declarations. The compilation errors (identifier expected where 'begin' keyword found, mismatched parentheses, missing semicolons) indicate the model produced malformed procedure signatures - likely missing return type declarations, incorrect parameter syntax, or improperly structured procedure bodies. The task and test are valid; the model simply failed to produce syntactically correct AL code for a codeunit with multiple procedures that have return values and proper variable declarations.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0105 |
||||
| 13 | enum-and-codeunit-combined-file-syntax | enum-definition | 1 | CG-AL-H007 |
|
Description: The model generated code that placed the enum definition incorrectly, likely putting the enum 'value' keywords in a context where the AL compiler expected codeunit syntax. The compilation error at line 67 shows 'value' keyword being unexpected, which indicates the model either combined the enum and codeunit in a single file incorrectly, or used wrong syntax for the enum definition. The 'value' keyword is specific to enum objects and must appear inside a properly declared enum block. The model failed to produce valid AL code - the generated code was not even captured ('Generated code not found'), suggesting a fundamental failure in code generation for this task involving ErrorInfo, CustomDimensions, and enum definitions.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 14 | json-api-methods-syntax | json-handling | 1 | CG-AL-H014 |
|
Description: The model failed to generate valid AL code for the CG JSON Parser codeunit. The generated code has multiple syntax errors (missing 'end' keywords, semicolons, etc.) around lines 23-65, indicating the model does not properly understand how to structure AL codeunit procedures that work with JsonObject, JsonArray, and JsonToken types. The task and test are valid - the model simply produced syntactically broken AL code. The 'Generated code not found' note and the compilation errors at specific line numbers confirm the model produced something but with fundamental structural/syntax issues in the AL procedure bodies, likely misusing JSON API methods like Get(), AsObject(), AsDecimal() or incorrectly structuring control flow (for loops, if statements) when iterating JSON arrays and navigating nested objects.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 15 | query-crossjoin-syntax | query-definition | 1 | CG-AL-H017 |
|
Description: The model failed to generate valid AL code for the query object. The generated output appears to contain prose/explanation text instead of proper AL code (the errors at line 28 reference words like 'correctly' and backtick characters, indicating the model output natural language or markdown instead of pure AL code). The model did not produce a syntactically valid AL query object with CrossJoin dataitems, proper column definitions, and LeftOuterJoin for the Dimension Set Entry dataitem.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 16 | collection-type-syntax-and-procedure-structure | list-dictionary-types | 1 | CG-AL-H020 |
|
Description: The model failed to generate valid AL code for a codeunit using List and Dictionary collection types. The compilation errors (semicolon expected, 'end' expected at multiple lines around line 50+) indicate the model produced syntactically invalid AL code, likely struggling with the complex generic type syntax (e.g., 'Dictionary of [Text, List of [Text]]' for GroupByFirstLetter) and proper procedure structure when working with AL collection types. The generated code was not captured but the errors point to malformed procedure bodies, possibly incorrect handling of nested generic types or improper begin/end blocks.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0111 |
||||
| 17 | al-control-flow-syntax | basic-al-syntax | 1 | CG-AL-H022 |
|
Description: The model generated code with fundamental AL syntax errors including missing 'then' keywords after 'if' conditions, misplaced 'end' statements, missing semicolons, and unbalanced parentheses. The generated code was not found/empty in the report, but the compilation errors at specific lines (25, 26, 47-52, 72) indicate the model produced syntactically invalid AL code with multiple structural issues. These are basic AL syntax mistakes - the model failed to properly write if-then-begin-end blocks, procedure structures, and expression syntax for a codeunit involving RecordRef/FieldRef operations.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 18 | string-literal-termination-and-page-structure | page-definition | 1 | CG-AL-M004 |
|
Description: The model generated AL code with multiple fundamental errors: (1) A text literal was not properly terminated (AL0360 at line 128), likely a string with an unescaped or missing closing single quote. (2) The page structure was broken, causing properties like SourceTable, SourceTableView, and UsageCategory to appear outside a valid page context (AL0124 errors at lines 135-139). This suggests the model likely closed the page object prematurely (perhaps due to the unterminated string literal causing cascading parse errors) and then had page properties appearing as if they belonged to a second object definition. The errors cascade from the initial string literal issue at line 128, which broke the parser's understanding of the page structure, leading to all subsequent errors including misplaced properties and syntax errors.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0360 |
||||
| 19 | table-extension-structure | table-extension-definition | 1 | CG-AL-M006 |
|
Description: The model generated code with fundamental AL syntax errors starting at line 21. The compilation errors (expecting ';', identifier, keywords like 'begin' misplaced, expecting application object keywords like 'tableextension') indicate the model failed to produce a properly structured AL table extension. The errors suggest the model likely mixed up procedural code with the table extension declaration structure, possibly placing procedure bodies (with 'begin' keyword) outside of proper context, or failed to properly structure the tableextension object with its fields section and procedure declarations. The generated code file appears to have severe structural issues where AL object-level syntax is broken.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||
| 20 | json-object-value-extraction | json-handling-codeunit | 1 | CG-AL-M020 |
|
Description: The model failed to generate valid AL code for the codeunit. The generated code has fundamental syntax errors starting at line 21, suggesting the model produced malformed AL code - possibly including markdown fences, incorrect structure, or invalid syntax for JSON handling procedures. The task and test are valid; the model simply failed to produce a compilable AL codeunit that properly handles JsonObject, JsonToken, JsonValue, JsonArray types and Dictionary return types.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0107 |
||||
| 21 | yaml-parsing-al-syntax | codeunit-procedure-structure | 1 | CG-AL-M021 |
|
Description: The model failed to generate valid AL code for the YAML Handler codeunit. The compilation errors (semicolon expected, 'end' expected at multiple lines) indicate the model produced code with fundamental AL syntax errors - likely mixing non-AL constructs or having malformed procedure bodies. The task and tests are valid; the model simply couldn't produce syntactically correct AL code for parsing YAML-like text content using string manipulation and JsonObject. Since AL has no native YAML library, the model needed to implement manual string splitting/parsing logic and apparently failed to structure the codeunit properly.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0111 |
||||
| 22 | setloadfields-multiline-syntax | partial-record-loading | 1 | CG-AL-M023 |
|
Description: The model generated code with a syntax error around SetLoadFields calls, likely splitting the field list across multiple lines incorrectly or using a trailing comma. The AL0301 error 'A list must end with a member; not a separator ,' at line 23:38 indicates the model placed a comma at the end of a parameter list (likely in a SetLoadFields call) without a following argument, possibly breaking the call across lines incorrectly. The cascading syntax errors (expecting ')', semicolons, 'end') all stem from this initial malformed function call. The generated code was not captured but the compilation errors clearly show the model failed to produce syntactically valid AL code for what should be a straightforward codeunit with SetLoadFields usage.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0301 |
||||
| 23 | query-object-definition | query-object-syntax | 1 | CG-AL-H011 |
|
Description: The model failed to generate any valid AL code for the query object. The generated code was either empty or completely malformed, resulting in syntax errors at line 23 indicating the compiler expected an application object keyword (like 'query') but found something else entirely. The model does not know how to properly define an AL query object with dataitems, columns, aggregation methods, column filters, and ordering.
Correct Pattern:
Incorrect Pattern:
Error Codes: AL0104 |
||||