Gitlab Duo Agent Platform error message through IDE "your request was valid but workflow failed to complete it please try again"
Checklist
-
I'm using the latest version of the extension (see the latest version in the right column of this page)
- Extension version: gitlab.gitlab-workflow / 6.60.2
-
I'm using the latest VS Codium version (find the latest version here)
- VS Codium version: 1.106.37943
-
I'm using a supported version of GitLab (see README for the supported version)
- GitLab version: happens on
gitlab.com
- GitLab version: happens on
Summary
I'm testing a use case for building a java application through AI for the customer Renault.
I have company guidelines for building the app that I put in the chat-rules.md file and I used the prompt fixed by the customer to build the app with their requirements.
The prompt is working and had been already tested a couple of weeks ago but since yesterday I have an issue when I try to execute a prompt through the IDE.
Steps to reproduce
1/ create a project from scratch here it is called "Renault_IA" 2/ create .gitlab/duo repo 3/ switch to VS Codium to add a chat-rules.md file with specific instructions (see below for details) 4/ open a DAP chat (no matter LLM) 5/ write a prompt and execute it (see below for details)
Instructions for Chat-rules.md
description: 'Guidelines for building Java base applications' applyTo: '**/*.java'
Java Development
General Instructions
- First, prompt the user if they want to integrate static analysis tools (SonarQube, PMD, Checkstyle) into their project setup. If yes, provide guidance on tool selection and configuration.
- If the user declines static analysis tools or wants to proceed without them, continue with implementing the Best practices, bug patterns and code smell prevention guidelines outlined below.
- Address code smells proactively during development rather than accumulating technical debt.
- Focus on readability, maintainability, and performance when refactoring identified issues.
- Use IDE / Code editor reported warnings and suggestions to catch with Context7.
Best practices
- Records: For classes primarily intended to store data (e.g., DTOs, immutable data structures), Java Records should be used instead of traditional classes.
-
Pattern Matching: Utilize pattern matching for
instanceofandswitchexpression to simplify conditional logic and type casting. -
Type Inference: Always Use
varfor local variable declarations to improve readability. -
Immutability: Favor immutable objects. Make classes and fields
finalwhere possible. Use collections fromList.of()/Map.of()for fixed data. UseStream.toList()to create immutable lists. -
Streams and Lambdas: Use the Streams API and lambda expressions for collection processing. Employ method
references (e.g.,
stream.map(Foo::toBar)). -
Null Handling: Avoid returning or accepting
null. UseOptional<T>for possibly-absent values andObjectsutility methods likeequals()andrequireNonNull(). - Exposing JPA Entity: Avoid exposing JPA entities directly in APIs. Use DTOs or view models to decouple the database layer from the API layer.
-
Entity to DTO mapping: Use mapstruct library to simplify the mapping process between entities and DTOs.
Add the dependency in your
pom.xmlorbuild.gradlefile if needed. use context7 to generate the mapping code.
Naming Conventions
- Follow Google's Java style guide:
-
UpperCamelCasefor class and interface names. -
lowerCamelCasefor method and variable names. -
UPPER_SNAKE_CASEfor constants. -
lowercasefor package names. - Use nouns for classes (
UserService) and verbs for methods (getUserById). - Avoid abbreviations and Hungarian notation.
Bug Patterns
| Rule ID | Description | Example /
Notes |
| ------- | ----------------------------------------------------------- |
------------------------------------------------------------------------------------------------ |
| S2095 | Resources should be closed | Use try-with-resources when working
with streams, files, sockets, etc. |
| S1698 | Objects should be compared with .equals() instead of == | Especially important for Strings and
boxed primitives. |
| S1905 | Redundant casts should be removed | Clean up unnecessary or unsafe
casts. |
| S3518 | Conditions should not always evaluate to true or false | Watch for infinite loops or if-
conditions that never change. |
| S108 | Unreachable code should be removed | Code after return, throw, etc.,
must be cleaned up. |
Code Smells
| Rule ID | Description | Example /
Notes |
| ------- | ------------------------------------------------------ |
----------------------------------------------------------------------------- |
| S107 | Methods should not have too many parameters | Refactor into helper classes or use
builder pattern. |
| S121 | Duplicated blocks of code should be removed | Consolidate logic into shared
methods. |
| S138 | Methods should not be too long | Break complex logic into smaller, testable
units. |
| S3776 | Cognitive complexity should be reduced | Simplify nested logic, extract methods,
avoid deep if trees. |
| S1192 | String literals should not be duplicated | Replace with constants or
enums. |
| S1854 | Unused assignments should be removed | Avoid dead variables—remove or
refactor. |
| S109 | Magic numbers should be replaced with constants | Improves readability and
maintainability. |
| S1188 | Catch blocks should not be empty | Always log or handle exceptions
meaningfully. |
Build and Verification
- After adding or modifying code, verify the project continues to build successfully.
- If the project uses Maven, run
mvn clean install. - If the project uses Gradle, run
./gradlew build(orgradlew.bat buildon Windows). - Ensure all tests pass as part of the build.
Prompt used in DAP
Default values if not provided as argument
springBootVersion=3.5.0 artifactName=demo packageName=com.renault.demo
Create Spring Boot Java project
- Run following command in terminal to download a Spring Boot project template
curl https://start.spring.io/starter.zip \
-d artifactId=${input:artifactName} \
-d bootVersion=${input:springBootVersion} \
-d dependencies=lombok,configuration-processor,web,data-jpa,postgresql,data-redis,validation,cache,
testcontainers,docker-compose \
-d javaVersion=21 \
-d packageName=${input:packageName} \
-d packaging=jar \
-d type=gradle-project \
-o starter.zip
Unzip the downloaded file
- Run following command in terminal to unzip the downloaded file
unzip starter.zip -d .
Remove the downloaded zip file
- Run following command in terminal to delete the downloaded zip file
rm -f starter.zip
Add additional dependencies
- Insert 'org.liquibase:liquibase-core' dependency into
build.gradlefile
Add SpringDoc configuration
- Convert the
application.propertiesfile toapplication.yamlfile - Insert the JPA dialect configuration into
application.yamlfile
spring:
jpa:
database-platform: org.hibernate.dialect.PostgreSQLDialect
Liquibase changelog
- Create a
db/changelogdirectory insrc/main/resources - Create a
db.changelog-master.yamlfile in thedb/changelogdirectory. The changelog file should contain the following content:
databaseChangeLog:
Test configuration
- Create a application-test.yaml with the following content:
spring:
liquibase:
enabled: false
jpa:
hibernate:
ddl-auto: create-drop
Run Gradle test command
- Run maven clean test command to check if the project is working
./gradlew clean test
Run Gradle run command
- (Optional) With the
spring-boot-docker-composedependency, Docker Compose services will be automatically started when running./gradlew bootRunand stopped when the application shuts down.
Let's do this step by step
What is the current bug behavior?
I have an error message like this "your request was valid but workflow failed to complete it please try again" or a message saying that DAP is generating an answer or working on it
What is the expected correct behavior?
An interaction with DAP to confirm packages to use and build the Java app
Relevant logs and/or screenshots
2025-12-10T17:07:36:839 [info]: Configuring Language Server - baseUrl: https://gitlab.com 2025-12-10T17:24:14:433 [info]: Configuring Language Server - baseUrl: https://gitlab.com 2025-12-10T17:24:16:657 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:24:18:349 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 956 ms 2025-12-10T17:24:18:597 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 244 ms 2025-12-10T17:24:26:662 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:24:36:666 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:24:46:667 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:24:47:725 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 335 ms 2025-12-10T17:24:47:987 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 258 ms 2025-12-10T17:24:56:672 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:25:06:673 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:25:16:677 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:25:17:718 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 324 ms 2025-12-10T17:25:18:149 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 428 ms 2025-12-10T17:25:26:679 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:25:36:680 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:25:46:684 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:25:47:705 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 305 ms 2025-12-10T17:25:47:958 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 249 ms 2025-12-10T17:25:56:686 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:26:06:691 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:26:16:696 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:26:17:859 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 465 ms 2025-12-10T17:26:18:367 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 505 ms 2025-12-10T17:26:26:700 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:26:36:705 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:26:46:709 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:26:47:740 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 339 ms 2025-12-10T17:26:47:991 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 247 ms 2025-12-10T17:26:56:714 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:27:06:714 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:27:16:719 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:27:17:732 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 334 ms 2025-12-10T17:27:18:186 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 453 ms 2025-12-10T17:27:26:723 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:27:36:727 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:27:46:733 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:27:47:702 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 303 ms 2025-12-10T17:27:47:990 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 286 ms 2025-12-10T17:27:56:737 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:28:06:743 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:28:16:744 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:28:17:728 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 317 ms 2025-12-10T17:28:17:986 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 255 ms 2025-12-10T17:28:26:747 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:28:36:750 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:28:46:754 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:28:47:717 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 308 ms 2025-12-10T17:28:47:964 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 246 ms 2025-12-10T17:28:56:759 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:29:06:764 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:29:16:767 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:29:17:761 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/merge_requests?state=opened&source_branch=main returned HTTP 200 after 343 ms 2025-12-10T17:29:18:128 [debug]: fetch: request to https://gitlab.com/api/v4/projects/76980538/pipelines?ref=main returned HTTP 200 after 364 ms 2025-12-10T17:29:26:773 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:29:36:776 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin) 2025-12-10T17:29:46:778 [debug]: [auth] Syncing account credentials to language server (https://gitlab.com|28919302 - lively-penguin)