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 youOne 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.