Persistent Issue with forge tunnel Command and Docker Image Pull Failure

Hello Atlassian Developer Community,

I am facing a challenging issue with the forge tunnel command in the Forge CLI. Despite various troubleshooting attempts, the problem persists, and I’m seeking insights or solutions from the community.

Issue Description: When executing the forge tunnel command for my Forge app, it consistently fails with the following error message related to Docker image pulling:

Checking Docker image... failed
Cannot pull the tunnel image.

Notably, this occurs even though I can manually pull the Docker image (atlassian/forge-tunnel:latest) without any trouble.

Specific Error from Docker:

Error: The manifest.yml file is not a valid YAML. Fix it and try again.
{"__tunnel_error__":true,"name":"InvalidManifestError","attributes":{"isUserError":true}}

Despite this error, both forge lint and forge deploy run successfully, indicating no issues with the manifest.yml file.

Successful Steps:

  • Deployment using forge deploy works flawlessly.
  • forge lint shows no issues with the manifest file.
  • Manual pulling of the atlassian/forge-tunnel:latest Docker image is successful.

Troubleshooting Steps Taken:

  1. Validated manifest.yml for syntax errors using online tools.
  2. Cleared Docker cache with docker system prune -a.
  3. Manually pulled atlassian/forge-tunnel:latest image using Docker.
  4. Checked the Docker daemon’s status and configuration.
  5. Assessed network connectivity impacting Docker operations.
  6. Reinstalled both Docker and Forge CLI.
  7. Attempted running forge tunnel with the --verbose flag, which didn’t yield additional details.

Environment:

  • Forge CLI version: 7.0.0
  • Docker version: 4.26.1

Has anyone else encountered a similar issue, or are there known conflicts with specific configurations or versions? Any advice, experiences, or suggestions from the community would be immensely helpful.

Thank you very much in advance for your assistance!

2 Likes

Sorry about the error you’re seeing.

  • You can ignore the Cannot pull the tunnel image message if there are no other problems; it’s caused by Docker printing helpful hints that Forge doesn’t recognise, and we’ll be fixing it soon.
  • Have you followed the steps at https://go.atlassian.com/forge-tunnel-ngrok?
  • If you’re still getting errors, please open a bug via support - it might be a problem specifically with your manifest file, for example.
3 Likes

Thank for your answer @AlexeyKotlyarov

1 Like

Hello Atlassian Developer Community,

I wanted to provide an update on the issue I previously posted about regarding the forge tunnel command in the Forge CLI. With the assistance of Atlassian Support, particularly Nicolas Grunberg, and through further troubleshooting on my end, I’m pleased to report that the issue has been resolved.

Resolution Summary:

  • The initial problem was with the forge tunnel command, which consistently failed with errors related to Docker image pulling and an incorrect ngrok configuration file path.
  • Despite the ngrok configuration path being correctly set in Forge settings, the Forge CLI was attempting to read the configuration file from an incorrect path.
  • The issue persisted even though the forge deploy and forge lint commands worked without issues, and the Docker image for atlassian/forge-tunnel:latest could be manually pulled.

Key Steps to Resolution:

  • A crucial step that led to the resolution was the modification of the ngrok.yml configuration file. I added a region field to the existing version and authtoken configuration, resulting in the following setup:
version: "2"
authtoken: [My Ngrok Auth Token]
region: us
  • After this change, the forge tunnel command started functioning correctly again. It’s worth noting that previously, the region field was not specified, yet the tunnel worked fine.

Acknowledgment:

  • I’d like to extend my gratitude to Nicolas Grunberg and the Atlassian Developer Support team for their guidance and support during this troubleshooting process.

Insights for the Community:

  • If you’re facing similar issues with the forge tunnel command, consider verifying your ngrok configuration, especially the region field.
  • This solution might not be universal but could be a starting point for others experiencing similar difficulties.

I hope this update is helpful to anyone who might encounter a similar problem. If there are any further insights or explanations about why specifying a region in the ngrok config resolved the issue, I’d be very interested to hear them.

Thank you all for your support and assistance!

Best regards, Oday Rafeh

3 Likes

Can you please share quick instructions: How to change ngrok.yml in Docker? I’m a newbie with Docker.

To change the ngrok.yml file in a Docker container, follow these simpler steps:

  1. Access the Container:
  • Use docker exec to get a shell in the container:
docker exec -it <container_name_or_id> sh
  1. Edit the ngrok.yml:
  • Find and edit the ngrok.yml file using a text editor like vi or nano:
vi /path/to/ngrok.yml

Replace /path/to/ngrok.yml with the actual path to your ngrok.yml file inside the container.

  1. Save and Exit:
  • After editing, save your changes and exit the text editor.
  1. Exit the Container:
  • Type exit to leave the container shell.
1 Like