Question

DOCTL "Access Token is Required" even after initializing

Posted April 5, 2020 743 views
API

Just installed DOCTL on my Raspberry Pi. I have performed doctl auth ini and verified my API Token.

Yet, when I run my script, I get the following:

Error: unable to initialize DigitalOcean api client: access token is required. (hint: run 'doctl auth init')

I created a new API Key just to be safe and I get the same issue.

However, if I run something as simple as doctl compute snapshot list or /snap/bin/doctl compute snapshot list I get the expected list of my snapshots with no error message.

I’m using this same script on a few different Ubuntu 18.06 LTS and a previous Pi installation. Can’t seem to figure out where I’m going wrong.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
2 answers

Hi there @aaronmweiss,

It sounds like that your script might be running as a different user, for example you’ve authenticated as your default pi user but the script is executed as the root user.

I would recommend adding doctl auth init in the beginning of your script and running it like that 1 time so that you are sure that the user the script runs as has actually authenticated.

Let me know how it goes.
Regards,
Bobby

  • Hello,

    Just to clarify on the first point of the previous answer, if you run the script with sudo this might cause the issue.

    Here’s an example script:

    #!/bin/bash
    
    ##
    # Print the current user
    ##
    
    echo ${USER}
    
    • bash test.sh

    The output would be:

    bobby
    

    But then if you run the script with sudo:

    • sudo bash test.sh

    The output would be:

    root
    

    Regards,
    Bobby

Adding doctl auth init to the script the first go around worked perfectly.

Submit an Answer