Yandex Cloud CLI troubleshooting
CLI installation issues
You cannot run scripts in PowerShell
If PowerShell denies running scripts, check the active execution policies using the Get-ExecutionPolicy -List command. Only modify policies if this is allowed by your organization's security protocol. If the policy is enforced by the administrator or running scripts is prohibited, install the CLI without a script.
For more information about PowerShell execution policies, see the relevant Microsoft guides
No access to https://storage.yandexcloud.net
You can manually download the executable archive and install the CLI.
For example, this may be useful if the target device does not have access to https://storage.yandexcloud.net. Download the archive containing the CLI executable on a different device, then transfer the archive to the target device using a method approved by your organization.
Failure writing output to destination
If curl was installed on Linux Ubuntu using a snap packagecurl: (23) Failure writing output to destination error while installing the CLI.
To fix this error, delete curl and reinstall it using the apt package manager
sudo snap remove curl
sudo apt install curl
Then repeat the CLI installation.
The yc command not found in Linux or macOS
If you get the yc: command not found error after installing the CLI, restart the command shell or run this command:
exec -l $SHELL
If the error persists:
-
Make sure the CLI executable is installed:
ls -l "$HOME/yandex-cloud/bin/yc"If the file is not there, reinstall the CLI.
-
Add the executable file path to the
PATHenvironment variable for the current session and test the CLI:source "$HOME/yandex-cloud/path.bash.inc" yc version -
To add the path in new session automatically, make sure the
~/.zshrc,~/.bashrc, or~/.bash_profilefile, depending on which shell you are using, contains the following line:if [ -f "$HOME/yandex-cloud/path.bash.inc" ]; then source "$HOME/yandex-cloud/path.bash.inc"; fi
command not found: compdeferror
The command not found: compdef error occurs if CLI autocompletion is loaded before initializing the zsh autocompletion system.
Add the following lines to the ~/.zshrc file before the line which connects the completion.zsh.inc file:
autoload -Uz compinit
compinit
Then restart the shell or run the exec -l $SHELL command. For more on setting up autocompletion, see Enabling autocompletion.
Issues when using the CLI
If an error occurs during the operation, the CLI displays the corresponding message.
Error message example
yc compute instance create \
--name my-inst3 \
--metadata user-data="#ps1\nnet user Administrator Passw0rd" \
--zone ru-central1-a \
--public-ip \
--create-boot-disk image-folder-id=standard-images,image-name=windows-2016-gvlk-153
ERROR: rpc error: code = ResourceExhausted desc = The limit on maximum number of instances has exceeded.
server-request-id: 9d42710c-4a14-4561-a491-1f3bf76dbaaa
client-request-id: e69f4463-b9de-45bc-89b3-4db6e4d1bae6
client-trace-id: ddd8c763-81a3-4c58-9a7d-445257b59aee
Use server-request-id, client-request-id, client-trace-id for investigation of issues in cloud support
If you are going to ask for help of cloud support, please send the following trace file: C:\Users\username\yandex-cloud\logs\yc_compute_instance_create-2019-02-18T12-26-39.897.txt
How do I get operation error details?
If the CLI outputs the operation ID, request information about the operation:
yc operation get <operation_ID>
The operation info may describe the cause of the error in more detail.
How do I contact support?
To help our support team solve your problem faster, from the error message:
-
Copy all available IDs. In our example, they are
server-request-id,client-request-id, andclient-trace-id. -
Copy the trace file that was saved to your PC. See the path to the trace file at the end of the error message.
In our example, it is:C:\Users\username\yandex-cloud\logs\yc_compute_instance_create-2019-02-18T12-26-39.897.txt -
Provide this information to the technical support team
.
Resource not found when accessed by name
If you get an error when accessing a resource by name:
ERROR: ... not found
or
ERROR: rpc error: code = NotFound ...
The resource is most likely not in the default folder of the current CLI profile.
To fix this issue, explicitly specify the folder using the --folder-id or --folder-name parameter:
yc <service> <resource> get <resource_name> --folder-id <folder_ID>
Example for a VM:
yc compute instance get my-vm --folder-id b1g5bhjofg7o********
If you work with this folder regularly, make it your default folder.
yc config set folder-id <folder_ID>
If using the resource ID, there is no need to specify the folder because their IDs are unique.
How do I use the CLI via a proxy server?
If your organization uses a proxy server to access Yandex Cloud, configure the CLI connection to the proxy server before running the yc init command.
Invalid token
When running a CLI command, you may get an invalid token error, e.g.:
ERROR: Unable to list clouds: rpc error: code = Unauthenticated desc = UNAUTHENTICATED: The token is invalid
Regardless of the profile type, CLI authentication in Yandex Cloud is performed using an IAM token. The CLI uses the following methods to get it:
- From the browser.
- In exchange for an authorized key.
- Directly from the
YC_IAM_TOKENenvironment variable.
The error means that the IAM token is invalid, e.g., due to being expired or revoked.
Re-authenticate to the CLI.
Also bear in mind that providing an IAM token into the export YC_IAM_TOKEN=<IAM_token_value> environment variable overrides the authentication parameters set for other authentication types.
Error when authenticating on a server without a GUI or browser
If the server has no GUI or browser, you will get the following error:
ERROR: fill default credentials: federation id authentication is not supported on this system because the browser can not be opened
Authenticate using a service account. Alternatively, you can use an SSH tunnel or X11 forwarding.