ProfileNotExistsException

Instagram has no profile for that username.

The error#

The usual message:

Profile {username} does not exist.

Other messages in 4.16:

No profile found, the user may have blocked you (ID: {id})
Profile {username} has blocked you

One path adds similar names:

Profile {username} does not exist.
The most similar profile{s}: {names}.

ProfileNotExistsException is a subclass of InstaloaderException. ProfileHasNoPicsException is still defined and marked deprecated. The docstring says it is not raised anymore.

What triggers it#

The profile lookup fails, the GraphQL user is missing, or the id lookup finds nothing. A block is reported with the same class, not with a separate one. HTTP 404 on a JSON call is QueryReturnedNotFoundException, which is a subclass of ConnectionException, not this class.

How to confirm#

Open https://www.instagram.com/{username}/ while signed out. If Instagram has no such account, this exception matches. If the page exists and the exception says has blocked you, the session's account is blocked.

Fixes#

Check the spelling. Retrying the same username does not create the profile. A block is about the account you logged in as. Another login is what the message is pointing at. It does not make a deleted username exist.

SocialScrape#

Instagram profile is GET /v1/instagram/profile. A private account comes back with is_private true. Posts are GET /v1/instagram/profile/posts, and one post is GET /v1/instagram/post.

Failed requests cost 0 credits. New accounts get 100 credits on signup, no card. Codes are on errors.

Questions

What does SocialScrape return for a missing handle?

not_found. That failure costs 0 credits.

What about a renamed account?

If the username does not resolve, instaloader still raises ProfileNotExistsException.