Skip to content

Troubleshooting 1.2

There are many things that can go wrong when developing Docker images and applications. This document list some common problems and their solutions.

VHT

Installation

If installation fails because of lack of privileges.

You will need to have sudo privileges to complete the installation. If you do not have these privileges, please talk to your system administrator.

If you see:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?

when running a docker image build command.

You are not part of the docker group. The installation script will add the user to the docker group, but these changes will not take effect unless you logout and login again or reboot.

Tab Completion

If tab completion is not working or is giving stale results from an older VHT version.

Try running:

. /etc/bash_completion.d/vhc

This should run the tab completion script in your shell.

You can also logout and login again or reboot and these changes will take effect in any new shell you open.

Image Build

If you see:
No partner ID found. Please use --unauth.

when running a vhc image build command.

If you don’t have partner credentials, then add the --unauth flag to the command.

If you do have partner credentials, then make sure they have been imported using vhc partner secure import-credentials.

If you see:
ERROR: Architecture '<some-architecture>' is not supported.

when running a vhc image build command.

You have specified an architecture that is not supported by any VeeaHub model. You can use the vhc image config platform list command to get a list of supported architectures.

If you see:
ERROR! architecture not found: arm32v7 [arm64v8]

when running a vhc app config add-image command.

You have not specified an architecture for your VeeaHub model. You can use the --arch flag with either of the following values for your VeeaHub: arm32v7 and arm64v8.

If you see:
ERROR: Architecture '<some-architecture>' is not valid for this image.

when running a vhc image build command.

You have specified an architecture that is not supported by the image. Use vhc image config show to display the supported architectures or add the architecture using the vhc image config platform add command.

If you see:

fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/aarch64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.9/community: temporary error (try again later)
WARNING: Ignoring APKINDEX.737f7e01.tar.gz: No such file or directory

when running a vhc image build command.

The solution is to restart docker using:

$ sudo service docker restart

If you see:

Error: unknown flag: --build-arg MYVAR

when running a vhc image config docker-opts set command that uses a docker build option.

You might need to add a “--” between the vhc image config docker-opts command and the string value. For example:

vhc image config docker-opts set -- "--build-arg MYVAR=MYVALUE"

If you see:

Step 8/28 : FROM "$ARCH/busybox"
invalid reference format
exit status 1

or something similar when running a vhc image build compile command.

You must place the ARG declaration of any argument used in a FROM command before the FROM line.

If you see:

ERROR: The old #BEGIN/#END construct is no longer supported.
It should be replaced with a construct using a Docker ARG.
For example:
ARG ARCH
FROM $ARCH/alpine:3.15
Please modify your Dockerfile

when running a vhc image build command.

You will need to replace the Dockerfile commands that use the old #BEGIN/#END construct with the newer ARG-based mechanism.

For instance, if the construct is used in the FROM line, then you should use:

ARG ARCH

FROM $ARCH/<package-name>

If the construct is used elsewhere (such as to control the GOARCH), then you should use a Docker build argument (see the tutorial on Docker options).

Image Signing

If you see:

Verifying unsigned image

2023-09-16 18:33:47 SDL.elements.VeeaContainer               ERROR    Missing label 'com.veea.authentication.certificates.partner' from container.

0 warnings

1 errors

Failed - please fix errors

exit status 1

It means the the partner credentials have not been properly configured and the user needs to run vhc partner secure import-credentials.

Hub Access Commands

If you see:

curl: (56) OpenSSL SSL_read: error:14094415:SSL routines:ssl3_read_bytes:sslv3 alert certificate expired, errno 0
exit status 56

when running a vhc hub access command.

The solution is to generate a new TLS certificate using:

vhc partner secure update-tls-credentials

If you see:

curl: (56) OpenSSL SSL_read: error:14094418:SSL routines:ssl3_read_bytes:tlsv1 alert unknown ca, errno 0
exit status 56

This indicates that there is a mismatch between the configured partner ID in VHT and the partner license that was uploaded to the VeeaHub.

The solution is to push the correct partner license to the VeeaHub.

If vhc hub access shell fails with:

Host key verification failed.

the laptop has not yet trusted the VeeaHub Shell SSH host key. The VeeaHub Shell commonly listens on port 9010, not the sideload REST port 9000.

ssh-keyscan -T 5 -p 9010 -H <hub-ip> >> ~/.ssh/known_hosts
vhc hub access shell --hub-id <hub-name> --command "help"

If shell access then fails with:

Permission denied (publickey,keyboard-interactive).

upload your public key to the hub:

vhc hub access upload-public-key --hub-id <hub-name> ~/.ssh/id_ed25519.pub
vhc hub access shell --hub-id <hub-name> --command "docker image ls"

Use vhc hub access ping to test the sideload server on port 9000; use vhc hub access shell to test the VeeaHub Shell path.

Applications

If you see a warning about two images inside an application having the same name.

You will need to use the --name flag when you run the vhc app config add-image command to rename at one of them.

VSH

Partner ID

If you don’t see your Partner ID in the Veea Shell prompt.

Check that you Partner CMS file has been loaded onto your development VeeaHub using the vhc hub access upload-license command.

Images

If you see:

Error response from daemon: params.Config.AttachStdout is not supported

when running docker image create.

It means that you forgot to use the --detach flag with the create command.

If you see:

Invalid or ambiguous image ID, UUID, or name specified

when running a docker image command.

It means that you need to disambiguate the image name by specifying part of the ID.

If you see:

Error response from daemon: The container ID [<partner-id>] and partner ID [FFFFFFFF] do not match.

when running docker image create.

You have built an auth image with a partner ID, but have not signed it. Run:

vhc image build sign

to create a signed image.

Containers

If you see:

Invalid or ambiguous container ID, UUID, or name specified

when running a docker container command.

It means that you need to disambiguate the container name by specifying part of the ID.

Ports

If you can’t access a port in your container.

Make sure to include the --publish-all flag or one or more --publish flags in the docker image create command to publish the exposed ports.

Volumes

If the host WebDAV mount of an exported volume fails with the following message:

mount: /mnt: unknown filesystem type 'davfs'.

You need to install the davfs2 package using:

sudo apt-get install davfs2

Feature Licenses

If you see:
ERROR: <some-path-name> does not exist.

when running vhc image config license add-path.

It means the license path does not exist and you should check that the path is correct.

Non-Authorized Partner ID Error

If you see:
joeuser:~/my_image$ vhc hub access upload-image build/auth/arm64v8/my_image-arm64v8\:1.0.0.unsigned.tar Creating image push for file [build/auth/arm64v8/my_image-arm64v8:1.0.0.unsigned.tar] on C05BCB00C0A000002089:9000 (images/push)... ##############################################

##################### 100.0% Non-authorized partner id found

This means that the image being uploaded uses a partner ID that does not exist on the VeeaHub. The user needs to upload their partner transport license that matches this partner ID using:

vhc hub access upload-license

joeuser:~/my_image$ vhc hub access upload-license Adding license file [/home/joeuser/.vhc/veea-partner-00000000-transport-license.cms] to C05BCB00C0A000002089:9000 (licenses)... ##############################################

##################### 100.0% Please reboot your VeeaHub to install the uploaded license

If the same error appears after uploading an application archive with vhc hub access upload-app, check the hub mode:

vhc hub access get-partner-id --hub-id <hub-name>
vhc hub access get-licenses --hub-id <hub-name>

If get-partner-id returns FFFFFFFF, the hub is currently acting as an unsigned/unauthenticated development hub. In that state, use unsigned image sideload instead of signed app sideload:

vhc image build save --arch arm32v7 --unauth --force
vhc hub access upload-image --hub-id <hub-name> \
  'build/unauth/arm32v7/<image-name>-arm32v7:<version>.unsigned.tar'

Then create and start the container through VeeaHub Shell:

vhc hub access shell --hub-id <hub-name> --command "docker image ls"
vhc hub access shell --hub-id <hub-name> --command \
  "docker image create <image-id> --detach --publish <host-port>:<container-port> --restart unless-stopped"
vhc hub access shell --hub-id <hub-name> --command "docker container start <container-id>"

A PARTNER-DEVELOPER license in get-licenses does not always mean the active partner ID is the signed partner prefix. Trust get-partner-id when choosing signed app sideload versus unsigned image sideload.