Common error messages related to Drupal
Composer memory limit error - Build Code
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Build Drupal | Build Code | Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes) in phar:///usr/local/bin/composer/src/ Composer/DependencyResolver/Solver.php on line 201. | Application | Customer |
Potential cause
The application uses an older version of the Drupal Starter Kits project template, which causes a Composer memory limit error.
Solution
Confirm that your application meets the following best practices:
- From
composer.json
, remove the lines that point to the old Drupal Starter Kits project template. Drupal Starter Kits utilizes the Acquia Drupal recommended project. - Commit
composer.lock
. - Use Composer 2.
- Analyze the delta between a working
composer.lock
and the failingcomposer.lock
.
Missing Test Drupal job error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Test Drupal | Test Drupal | 'Create artifact from branch' job needs 'Test Drupal' job, but 'Test Drupal' is not in any previous stage. | Application | Customer |
Potential cause
The Acquia Auto DevOps template is copied incorrectly in the entire codebase.
Solution
Remove everything in the file and add any necessary customization back in the before_script
and after_script
parameters.
$rector_bin process error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Automatic Updates | Deprecated Code Update | Command [$rector_bin process ${ACQUIA_CUSTOM_CODE_DIRS} --ansi] exited with code [1] | Application | Customer |
Potential cause
The existing Drupal code is deprecated.
Solution
Identify the files with deprecated Drupal code and update the code.
PHPStan error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Test Drupal | PHP Stan | Command ["$CI_PROJECT_DIR"/vendor/bin/phpstan] exited with code [1] | Application | Customer |
Potential cause
The existing code does not follow the proper coding standards.
Solution
Identify the files with code standards errors and update the code.
PHP version error - Build Code
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Build Code | Build Code |
| Application | Customer |
Potential cause
The PHP version of the project is not set correctly.
Solution
Add the PHP_VERSION
environment variable to your project through the UI, and set its value to the PHP version that your project uses. This value accepts major and minor versions only, for example, 8.2. For more information, see Modifying environment variables.
PHPUnit error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Test Drupal | Test Drupal | Class "Behat\Mink\Element\TraversableElement" not found | Application | Customer |
Potential cause
Certain packages are missing from your project.
Solution
If your application runs on the current Drupal version, add the core-dev
package to your project:
composer require --dev drupal/core-dev
Yarn not found error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Test Drupal | Test Drupal | Yarn not found | Application | Customer |
Solution
You can use yarn by adding the following lines in the .gitlab-ci.yml
file:
Test Drupal:
before_script:
- eval $YARN_PACKAGE
- eval $YARN_PATH
Error in opening a required file
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Test Drupal | Test Drupal | Error: Failed opening required '/var/www/site-php/<APP>/<APP>-settings.inc' | Application | Customer |
Solution
You must update the if
statement in the Cloud Platform database settings as follows:
In the
settings.php
file of your project, locate a statement similar to the erroneous statement. For example:if (file_exists('/var/www/site-php')) { require('/var/www/site-php/<APP>/<APP>-settings.inc'); }
Update the
if
statement to specify the complete path to the file:if (file_exists('/var/www/site-php/<APP>/<APP>-settings.inc')) {
Scheduled job rector errors
Description
This error is usually a result of an older version of rector being added in your project. Code Studio attempts to add the latest version of rector during the Pipeline. However, it uses your version if that is included in your project’s composer.lock
file.
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Test Drupal | Test Drupal | Undefined constant Rector\Core\Configuration\Option::IMPORT_DOC_BLOCKS | Application | Customer |
Resolution 1:
- Run
composer remove palantirnet/drupal-rector
. - Delete the
rector.php
file from the root of your project, allowing Code Studio to handle the rector going forward.
Resolution 2:
- Run
composer update palantirnet/drupal-rector -W
to upgrade your rector package to the latest rector version. - Remove the
rector.php
file from the root of your project. - Run
cp vendor/palantirnet/drupal-rector/rector.php
to recopy therector.php
file.
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Test Drupal | Test Drupal | Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator::__construct(): Argument #1 ($container) must be of type Symfony\Component\DependencyInjection\ContainerBuilder, RectorPrefix202208\Symfony\Component\DependencyInjection\ContainerBuilder given, called in /home/codestudio/.config/composer/vendor/rector/rector/vendor/symfony/dependency-injection/Loader/PhpFileLoader.php on line 67 | Application | Customer |
This error indicates that your project’s rector.php
file needs to be recreated. Newer versions of rector altered the configuration syntax, resulting in your rector.php file no longer being valid.
Resolution:
- Remove the
rector.php
file at the root of your project. - Run
cp vendor/palantirnet/drupal-rector/rector.php
to recopy therector.php
file to your project.
Common error messages related to Drupal and Node.js
Code push error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Deploy Drupal | Deploy Branch to Acquia and Deploy Tag to Acquia jobs | In PushArtifactCommand.php line 100: [Acquia\Cli\Exception\AcquiaCliException] Pushing code was aborted because your local Git repository has uncommitted changes. Please either commit, reset, or stash your changes via git. | Application | Customer |
Potential cause
Directories are committed in the codebase. Git must ignore the directories so that Composer can add them during the build.
Solution
Update the .gitignore
file in the root directory of your project so that Git ignores the proper directories. The recommended .gitignore
file is located in this location.
If Git does not ignore the pushed or tracked files even after updating the .gitignore
file, run the following commands from the root directory of your project:
git rm -r --cached .
git add .
After executing the commands, the system displays all the files that are ignored by the current .gitignore
file in staged changes.
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Deploy Drupal | Build artifact from branch/tag |
| Platform | Customer |
Potential causes
The user is not a member of the Cloud Platform subscription.
The user's role in Cloud Platform does not have access to push code.
Cloud Platform has an issue.
Solutions
Confirm that the user is a member of the Cloud Platform subscription.
Confirm that the user's role in Cloud Platform has access to push code.
For more information, see Managing users, teams, roles, and permissions.
Verify that Cloud Platform does not have an issue.
For more information, see Acquia, Inc. Status.
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
N/A | N/A |
| N/A | Customer |
Potential cause
If you cannot push code from your Cloud IDE or local development environment to your Code Studio repository due to this error, you must update your git remote
to use the HTTPS URL instead of the SSH URL.
Solution
Update your git remote
to use the HTTPS URL of your repository.
To find the HTTPS URL:
- Navigate to your Code Studio project.
- Click Clone.
Click the Copy icon to copy the value specified in the Clone with HTTPS field.
To update your git remote
:
Remove the current
git remote
from your Cloud IDE or local development environment.If your remote name is
origin
, run the following:git remote remove origin
Add the new remote using the copied HTTPS URL.
If you want your remote name to be
origin
, run the following:git remote add origin <URL>
Missing job error - gitlab-ci.yml
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
All | N/A | Found errors in your .gitlab-ci.yml: '<job2>' job needs '<job1>' job, but '<job1>' is not in any previous stage. | Application | Customer |
Potential cause
One job requires another job to complete the stage, but the required dependent job is currently not running. This can occur from a number of situations, such as the job not being defined in the template or mismatching conditions for when jobs are scheduled to run.
Solution
The following are the ways to resolve this error:
- Revert to default Auto DevOps job.
- Test your
.gitlab-ci.yml
in CI Lint.
Access denied error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Deploy | Creating Artifact | glab auth git-credential: "erase" is an invalid operation remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https://code.acquia.com/help/topics/git/troubleshooting_git #error-on-git-fetch-http-basic-access-denied fatal: Authentication failed for 'https://code.acquia.com/<USERNAME>/<PROJECT-NAME>.git/' | Application | Customer |
Potential cause
Your token has expired.
Solution
Use glab auth login
to configure the token again.
Missing build branch error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Deploy | Create Acquia CDE | The build branch '<BRANCH_NAME>' is missing from Acquia Cloud Platform | Application | Customer |
Potential cause
This error occurs during merge requests if one of the following is true:
- The
ACQUIA_JOBS_CREATE_BRANCH_ARTIFACT
environment variable is not set totrue
. The branch artifact must be created so that it can be pushed to Cloud Platform. - The source branch exists on a fork instead of the main repository.
Solution
- To create the branch artifact:
- Add the
ACQUIA_JOBS_CREATE_BRANCH_ARTIFACT
environment variable to your project. Set the value of
ACQUIA_JOBS_CREATE_BRANCH_ARTIFACT
totrue
.For more information, see Adding environment variables.
- Add the
- If the source branch does not exist in the main repository:
- Push the source branch to the main Code Studio project repository.
- Create the merge request without using a forked repository.
Error in uploading artifacts
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Varies | Varies | ERROR: Uploading artifacts. 413 Request Entity Too Large. | Platform | Customer |
Potential cause
If you customize your pipeline to implement artifact-producing jobs, and your artifacts are larger than 100 MB, you might see this error. Common custom jobs that result in large artifacts are front-end tests, such as Nightwatch.js or BackstopJS.
Solution
Contact your Technical Account Manager or Acquia Support to increase the maximum artifact size.
Missing token error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
Varies | Varies | Error writing data to auth/jwt/login: Error making API request. Code: 400. Errors: * missing token | Application | Customer |
Potential cause
This error occurs if you customize your pipeline to use the CI_JOB_JWT
variable or a similar token. The CI_JOB_JWT
variable is deprecated in GitLab.
Solution
If you use the CI_JOB_JWT
variable, then remove it. Add the following script to the stage or the job that you customized:
id_tokens:
VAULT_ID_TOKEN:
aud: $VAULT_ADDR
For example, if a custom job in the Test Drupal stage is Build artifact and deploy to CI Server, you must update the .gitlab-ci.yml
file as follows:
"Build artifact and deploy to CI Server":
stage: "Build Drupal"
id_tokens:
VAULT_ID_TOKEN:
aud: $VAULT_ADDR
Insufficient permission error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
N/A | N/A | Pipeline cannot be run. You do not have sufficient permission to run a pipeline on 'main'. Please select a different branch or contact your administrator for assistance. | Application | Customer |
Potential cause
Only owners and maintainers have access to run a pipeline on the main
branch.
Solution
Contact your administrator.
Login error
Description
Build stage | Job | Error message | Category | Responsibility |
---|---|---|---|---|
N/A | N/A | Your account is pending approval from an Acquia administrator. If it has been more than 24 hours, please contact Acquia Support. | Application | Customer |
Potential cause
The user does not have a Code Studio seat.
Solution
FAQs
How do I enable Code Studio for my Acquia subscription?
For information about enabling Code Studio for your subscription, see Enabling a Code Studio subscription.
Can the owner of a subscription enable Code Studio?
Yes, the owner of a subscription can enable Code Studio.
Can I disable Code Studio from the Cloud Platform user interface?
No, you cannot disable Code Studio from the Cloud Platform user interface. To disable your Code Studio subscription, contact Acquia Support.
What versions of Drupal does Code Studio support?
Code Studio supports the current Drupal version.
What versions of Node.js does Code Studio support?
Code Studio supports Node.js versions 18 and 20.
Why am I seeing a lot of SAST jobs in my Pipeline?
Acquia recommends you to not commit contributed dependencies to your repository. Example code for Drupal projects:
git rm -r --cached vendor docroot/core docroot/libraries docroot/modules/contrib docroot/themes/contrib docroot/profiles/contrib node_modules
Add these to your .gitignore
. For an example, see acquia/drupal-recommended-project.
How do I install private packages through Composer?
Composer provides multiple mechanisms for downloading private packages. Acquia recommends that you store authentication credentials in a project auth.json
. For more information, see Authentication in auth.json per project.
This works in Code Studio CI/CD jobs.
I cannot sudo and add packages, move binaries, etc. Why?
This is a security restriction on application containers running in the Acquia Kubernetes service.
- If you’re downloading a binary, such as
composer.phar
oracli.phar
(which Acquia has already done for you), you can place it in'$HOME/bin'
. The bin folder in the CI user’s home directory is already added to$PATH
. It works as long as your binary has an execute permissions set. - To download a package through
`apt`
or similar, create a Support ticket.
CDE already exists. What can I do?
Error message:
CDE environment with name CDE-xxxx already exists
Resolution 1:
If a merge request cannot be declined/merged immediately for some reason, one way is to stop the CDE environment:
- Log in to Code Studio.
- Navigate to Environments.
- Determine the respective environment with the same feature branch name, and stop the environment.
- Wait for a few minutes for the current pipeline to succeed, and to delete the existing CDE with the same name.
- Make some minor changes to the current feature’s merge request to re-initiate the pipeline with the CDE creation job.
Resolution 2:
- Rename the existing CD environment that is pointing to the same source branch from Acquia Cloud.
- Make some minor changes to the current feature’s merge request to re-initiate the pipeline with CDE creation job.
Is there a limit to the number of projects I can have in Code Studio?
No. You can have unlimited projects in Code Studio. However, the Code Studio Auto DevOps pipeline requires your Code Studio project to be linked to an Acquia Cloud application. You can link only one Code Studio project to a given Cloud application.
Does Code Studio work with Cloud IDE?
Yes. For instructions on how to set up Code Studio with Cloud IDE, see Setting up a Code Studio project.
For more information, see the following tutorials on dev.acquia.com:
Can I use an existing application with Code Studio?
Yes. Code Studio is compatible with existing applications running Drupal Starter Kits, and the current Drupal version or the current Node.js version.
Can I use a third-party repository with Code Studio?
Yes. You can use a third-party repository with Code Studio. For instructions on how to integrate your private repository with Code Studio, see Configuring repository mirroring in Code Studio.
Does Code Studio work with Jira?
You can integrate Code Studio with Jira Issues and Jira Development Panel. For more information about setting up the integration, see Integrating Code Studio with Jira.
Can you integrate a Veracode Static analysis with the Code Studio Auto DevOps pipeline
Yes. You can integrate a Veracode Static analysis by customizing the standard template for the Drupal Auto DevOps pipeline or by customizing the node template for the Node.js Auto DevOps pipeline.
To customize the Auto DevOps pipeline in Code Studio, see Adding a before_script or after_script to a Code Studio job.
For more information about implementing Veracode Static analysis as part of the pipeline, see GitLab Pipeline Scan Examples.
How many users can I add to Code Studio?
With Code Studio entitlements, seats are equivalent to users. The number of seats within your Code Studio subscription is equal to the number of users you can add to your Code Studio instance.
For more questions about Code Studio entitlements, contact your Acquia account team.
Why can I not manage certain seats in Code Studio?
If you assign seats through the Code Studio user interface, you might encounter an error while managing such seats. Acquia recommends that you assign seats through the Cloud Platform user interface.
Can I use Code Studio with non-Drupal applications?
Code Studio is compatible with Drupal and Node.js applications.
Can I use Code Studio with a Node.js application?
Yes. Code Studio is compatible with Drupal or Node.js applications.
Can I customize Code Studio builds?
Yes. You can customize Code Studio builds. For instructions, see Customizing a default Code Studio pipeline.
What is a build minute in Code Studio?
A build minute is one minute of execution time of a single Code Studio job. Build minutes are the sum of the durations of every job that you execute using Code Studio, including the jobs that run concurrently. For example, if you ran five jobs with each job using ten build minutes, then you used fifty build minutes.
Is there a limit to the build minutes for Code Studio?
Yes. Build time is limited to 10k minutes per group per year.
Can I use my own container image in a Code Studio job?
No. With the Auto DevOps pipeline, Acquia maintains the container images used in Code Studio jobs. You can customize jobs, but the base images are selected by Acquia as secure, vetted options that remove overhead for our users.
Can I disable Auto DevOps?
Yes, you can disable Auto DevOps.
Note
Disabling Auto DevOps removes the Acquia-optimized steps needed to build, test, and deploy Drupal applications to Acquia Cloud.
To disable Auto DevOps:
- In the left navigation pane, click Settings > CI/CD.
- Expand the Auto DevOps section.
- Clear the Default to Auto DevOps pipeline checkbox.
Does Code Studio work with Acquia Site Factory?
Yes. The continuous integration (CI) feature of Code Studio is compatible with Acquia Site Factory. However, the continuous delivery (CD) feature of Code Studio is not compatible with Acquia Site Factory.
For more information, see the Code Studio product support scope.
Can I use my own GitLab license with Code Studio?
No. External licenses for Gitlab cannot be used with Acquia Code Studio.
How do I enable or execute PHPUnit tests in the Test Drupal stage?
Ensure that the ACQUIA_TASKS_PHPUNIT
and ACQUIA_TASKS_SETUP_DRUPAL
environment variables are set to true
.
Do Code Studio runners use specific IP addresses that I can allowlist?
Yes. To obtain a list of IP addresses, contact Acquia Support.
Can Code Studio integrate with SonarCube?
Yes, Code Studio can integrate with SonarCube. For more information, see Gitlab integration.
How do I enable code coverage in PHPUnit?
Code Studio does not support PHPUnit code coverage.
How do I specify the root directory or output directory for my Node.js project?
- To specify the root directory, add the directory path to the
extra.acquia.root_directory
section in thepackage.json
file of the root directory. - To specify the output directory, add the directory path to the
extra.acquia.output_directory
section in thepackage.json
file of the root directory. For example:
"extra": {
"acquia": {
"root_directory": "front-end/",
"output_directory": "assets/"
}
}
The default root directory is <project_root>/
, and the default output directory is <project_root>/.next/
.
Can I turn off the Test stage or Deploy stage in my Node.js Auto DevOps pipeline?
Yes, you can turn off these stages in your Node.js Auto DevOps pipeline:
- To turn off the Test stage, add the
NODE_JOBS_TEST
environment variable in Code Studio and set it tofalse
. This setting also disables all jobs in the Test stage. For more information, see Adding environment variables. To disable certain tasks in the Test stage, see Environment variables to enable or disable a CI/CD job. - To turn off the Deploy stage, add the
NODE_JOBS_DEPLOY
environment variable in Code Studio and set it tofalse
. This setting also disables all jobs in the Deploy stage. For more information, see Adding environment variables.
Which package managers does Code Studio support for Node.js Auto DevOps?
Node Package Manager (NPM) is the only supported package manager in Code Studio. However, you can choose to use a before_script or after_script to modify the default pipeline and install packages using yarn.
Why are certain files in my Node.js Auto DevOps pipeline being excluded from the build artifact?
Code Studio excludes files with the following naming patterns as they are not required for build artifacts:
.hg
.git
.gitmodules
.svn
.cache
.eslintrc
.now
.vercel
.npmignore
.dockerignore
.gitignore
.*.swp
.DS_Store
.wafpicke-*
.lock-wscript
.env.local
.env.*.local
.venv
npm-debug.log
config.gypi
node_modules
__pycache__
venv
CVS
If a mandatory file is missing from a build artifact, rename the file to ensure that the name does not contain any of the preceding naming patterns.
Does Code Studio support BLT?
No, Code Studio does not support BLT.