> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/open-source/troubleshooting-and-resources/faq.md).

# Faq

Frequently asked questions, common errors and solutions.

## Running Harness Open Source in Offline Environments <a href="#running-harness-open-source-in-offline-environments" id="running-harness-open-source-in-offline-environments"></a>

### How can I run Harness Open Source in an offline environment without internet access? <a href="#how-can-i-run-harness-open-source-in-an-offline-environment-without-internet-access" id="how-can-i-run-harness-open-source-in-an-offline-environment-without-internet-access"></a>

Running Harness Open Source in an offline environment is possible with the following approaches:

**Local Docker Cache**:

1. Pull the necessary Docker images (e.g., drone/git) on a machine with internet access.
2. Use docker save to export these images to a file.
3. Transfer the file to your offline environment and use docker load to import the images into the local Docker cache.

**Docker Mirroring**:

* Configure your Docker daemon to use a local registry mirror. When Harness attempts to pull an image, it will request it from the local Docker daemon, which will then pull from your offline registry if configured.

### What images are required to run Harness Open Source offline? <a href="#what-images-are-required-to-run-harness-open-source-offline" id="what-images-are-required-to-run-harness-open-source-offline"></a>

The only essential image required to run Harness pipelines is the `drone/git` image. Additional plugin images are available but are optional and not required for basic functionality.

### How can I avoid Harness from pulling the `:latest` tag of an image? <a href="#how-can-i-avoid-harness-from-pulling-the-latest-tag-of-an-image" id="how-can-i-avoid-harness-from-pulling-the-latest-tag-of-an-image"></a>

Harness will always attempt to pull the `:latest` tag if it is specified. To avoid this:

* Use a specific tagged version (e.g., `:1.0.0`) instead of `:latest`.
* Add `pull: if-not-exists` to the step in your pipeline YAML to ensure the image is only pulled if it doesn’t already exist locally.

### Can I override the default cloning task image used by Harness? <a href="#can-i-override-the-default-cloning-task-image-used-by-harness" id="can-i-override-the-default-cloning-task-image-used-by-harness"></a>

Yes, you can override the default cloning task image by ensuring the desired image is available in your local Docker cache or by using a Docker registry mirror. Harness will use the locally cached image if it exists.

### How can I handle SSL errors when using the default clone task? <a href="#how-can-i-handle-ssl-errors-when-using-the-default-clone-task" id="how-can-i-handle-ssl-errors-when-using-the-default-clone-task"></a>

If you encounter SSL errors, you can bypass them by setting `clone.insecure=true`. However, if you prefer not to disable SSL, you can configure your Docker environment to trust the necessary certificates.

## Pipeline fails with /bin/sh: no such file or directory error <a href="#pipeline-fails-with-binsh-no-such-file-or-directory-error" id="pipeline-fails-with-binsh-no-such-file-or-directory-error"></a>

**Full error:**

```wordwrap=true
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "/bin/sh": stat /bin/sh: no such file or directory: unknown
```

**Potential causes:**

The [container](https://github.com/iKettles/harness-gitbook/tree/main/docs/open-source/reference/pipelines/yaml/container/README.md) defined in the [step](/open-source/use-harness-open-source/pipelines-1/steps.md) does not contain `/bin/sh`.

**Solutions:**

Publish a new version of the container that has `/bin/sh`, or switch to a different container that already has `/bin/sh`.

## Pipeline fails with resource is denied error <a href="#pipeline-fails-with-resource-is-denied-error" id="pipeline-fails-with-resource-is-denied-error"></a>

**Full error:**

```
Error response from daemon: pull access denied for IMAGE_NAME, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
```

**Potential causes:**

1. The [container](https://github.com/iKettles/harness-gitbook/tree/main/docs/open-source/reference/pipelines/yaml/container/README.md) defined in the [step](/open-source/use-harness-open-source/pipelines-1/steps.md) does not exist
2. The [container](https://github.com/iKettles/harness-gitbook/tree/main/docs/open-source/reference/pipelines/yaml/container/README.md) defined in the [step](/open-source/use-harness-open-source/pipelines-1/steps.md) is private, and requires authentication

**Solutions:**

1. Verify the container exists and can be pulled by running `docker pull IMAGE_NAME` locally
2. Harness Open Source inherits authentication from the host, see Docker's [login](https://docs.docker.com/reference/cli/docker/login/) command documentation

## Pipeline step fails with /bin/sh: exec format error <a href="#pipeline-step-fails-with-binsh-exec-format-error" id="pipeline-step-fails-with-binsh-exec-format-error"></a>

**Full error:**

```
exec /bin/sh: exec format error
```

**Potential causes:**

The [container](https://github.com/iKettles/harness-gitbook/tree/main/docs/open-source/reference/pipelines/yaml/container/README.md) defined in the [step](/open-source/use-harness-open-source/pipelines-1/steps.md) is for a different OS and/or architecture.

**Solutions:**

Switch to a container supported by your machine (see Docker's [Multi-platform images](https://docs.docker.com/build/building/multi-platform/) documentation).
