Skip to content

IPC callback raised exception: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti/... #1781

Open

Description

@will-code-for-pizza

Netflix add-on version

IPC callback raised exception: 404 Client Error: Not Found for url: https://www.netflix.com/api/shakti

Operative systems used

LibreELEC

Kodi version used

Other (specify in description)

Description of the bug

Kodi 21.3 Omega (LibreElec 12.2.1) - but also fails with 12.0.1 and older versions

Steps to reproduce the behavior

  1. Start Netflix AddOn 1.23.5
  2. Choose Profile
  3. Enter PIN
  4. Error occurs

Debug log - mandatory

https://paste.kodi.tv/ivofubapot.kodi

Possible fix

No response

Additional context

No response

Screenshots

No response

Activity

  1. added
    BugSomething isn't working
    Triage: NeededIssue that was just created and needs someone looking at it
    on Mar 2, 2026
  2. will-code-for-pizza commented on Mar 2, 2026

    @will-code-for-pizza
    Author

    If I try to get
    https://www.netflix.com/api/shakti/mre/profileLock

    this results in:

    {"timestamp":"2026-03-02T13:52:08.422+00:00","status":404,"error":"Not Found","message":"No message available","path":"/shakti/mre/profileLock"}

  3. will-code-for-pizza commented on Mar 2, 2026

    @will-code-for-pizza
    Author

    $ python3 NFAuthenticationKey.py

    NFAuthentication Key for Linux/MacOS (Version 1.1.8)

    Disclaimer:
    This script and source code available on GitHub are provided "as is" without warranty of any kind, either express or implied. Use at your own risk. The use of the software is done at your own discretion and risk with the agreement that you will be solely responsible for any damage resulting from such activities and you are solely responsible for adequate data protection.

    Press "ENTER" key to accept the disclaimer and start, or "CTRL+C" to cancel
    Browser startup... (/usr/bin/google-chrome) please wait
    Establish connection with the browser... please wait
    Opening login webpage... please wait
    Please login in to website now ...waiting for you to finish...
    Verification of data in progress... please wait
    File creation in progress... please wait
    /home/bjoern/Downloads/NFAuthenticationKey.py:127: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
    'timestamp': int(((datetime.utcnow() + timedelta(days=5)) - datetime(year=1970, month=1, day=1)).total_seconds()),
    Operations completed!
    The "NFAuthentication.key" file has been saved in current folder.
    Your PIN protection is: XXXX

  4. will-code-for-pizza commented on Mar 2, 2026

    @will-code-for-pizza
    Author

    And for the "KID" profile without PIN:

    https://paste.kodi.tv/ayikitequg.kodi

  5. Publish3r commented on Mar 2, 2026

    @Publish3r

    I think they changed the api. 404 Error for changing profile, too.
    #1780

  6. will-code-for-pizza commented on Mar 2, 2026

    @will-code-for-pizza
    Author

    After disabling profile PIN protection, I was able to navigate in movie library...
    (This is just a workaround, not a solved problem !!)

    But if I choose a movie, another error occurs:

    https://paste.kodi.tv/otufeyawaf.kodi

    EDIT:
    THIS LAST ISSUE IS SOLVED. I had to reset my ESN in "expert settings"

  7. Mannshoch commented on Mar 2, 2026

    @Mannshoch

    What doea this esn. and what happens if i reset it?

  8. screenagerbe commented on Mar 4, 2026

    @screenagerbe

    Got the same error, but a different scenario.

    Everything is working fine, but we're locked into the Kids profile which has no PIN configured.
    When we try to change profile we get the same 404 Error.

    I'll try to generate a new NFAuthentication.key and see what gives.

  9. Lamarqe commented on Mar 6, 2026

    @Lamarqe

    After generating a new NFAuthentication.key, I can not watch any steam anymore.

    It always gives me: MSL error
    licensedManifest/playapi-445: Playback not permitted by Content Usage Policies

    Even after generating new ESN for Widewine...

    Any ideas? I initially thought it might be about wrong inputstream adaptive resolution settings, but also changing to 480p did not resolve the issue.

  10. pont01 commented on Mar 13, 2026

    @pont01

    Miután létrehoztam egy új NFAuthentication.key-t, már nem tudok Steamet nézni.

    Mindig ezt a hibát adja: MSL hiba licensedManifest/playapi-445: A lejátszás nem engedélyezett a tartalomhasználati szabályzat által.

    Még miután új ESN-t generáltunk a Widewine-hez...

    Van valami ötleted? Először azt hittem, hogy a rossz bemeneti adatfolyam adaptív felbontási beállításai miatt lehet, de a 480p-re váltás sem oldotta meg a problémát.

    Sajnos nálam is ez a hiba! :(

  11. corsac-s commented on Mar 22, 2026

    @corsac-s

    I have the same error when trying to change profile. This is on 1.23.5 on OSMC.

    The URL is https://www.netflix.com/api/shakti/mre/profiles/switch?switchProfileGuid=

  12. patricksrentsch commented on Mar 29, 2026

    @patricksrentsch

    The same issue when changing profiles occurs to me with 1.23.5 on Kodi. But with followind steps, I was able to use the plugin with the main profile:

    • deactivated PIN for all profiles using the Browser on the PC
    • logged out of netflix in the plugin
    • deleted the plugin, reinstalled
    • logged in with a newly generated NFAuth-Key, PIN and the password

    after theses steps, the default (main) profile was selected in the plugin and I am able to use this profile including management of "my list" in this profile.
    However, changing to another profile does not work.

  13. aristotelesweb commented on Apr 18, 2026

    @aristotelesweb

    I got this IPC callback raised exception now for a couple of months on kod 1.23.5. After reading this thread I created a new key (by instructions of patricksrentsch, thanks) and got the "MSL error Playback not permitted by Content Usage Policies" error. I did the procedure two times, with the same MSL error.

  14. patricksrentsch commented on Apr 18, 2026

    @patricksrentsch

    I got this IPC callback raised exception now for a couple of months on kod 1.23.5. After reading this thread I created a new key (by instructions of patricksrentsch, thanks) and got the "MSL error Playback not permitted by Content Usage Policies" error. I did the procedure two times, with the same MSL error.

    Meanwhile, I switched to the adapted version in the pull-request
    #1783
    There, the API used has changed. So far,
    i can use the complete functionality of NF, slthough I have not re-activated the PIN for the different accounts. Perhaps you can try this.

  15. Lamarqe commented on Apr 18, 2026

    @Lamarqe

    Yes, I can confirm. #1783 solves the issue.

    Important for me is to keep the existing NFAuthentication Key, as recreating it will cause the MSL playback issue I mentioned above. However, this is an additional, but unrelated problem.

    Luckily I had kept a backup of the addon data before replacing it with a newly generated one.
    Restoring the backup and applying the changes of the linked PR has finally brought back Netflix on Kodi for me.

  16. aristotelesweb commented on Apr 18, 2026

    @aristotelesweb

    Thanks for the quick repsonse and help.. Unfortunately I don't have the old NFAuth key. I replaced the files from the 1783 version over the currently installed netflix addon and still got the MSL playback issue. I checked I have the most recent input adaptive widivine version.

    2026-04-18 19:01:19.052 T:83 warning : [script.module.inputstreamhelper] Widevine update check was made on 2026-03-24 21:18
    2026-04-18 19:01:19.101 T:7 info : VideoPlayer::OpenFile: plugin://plugin.video.netflix/play/movie/60020810/?profile_guid=TKLRAKSICNBKTLCZ2SYMNONNME
    2026-04-18 19:01:19.101 T:127 warning : CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
    2026-04-18 19:01:19.101 T:127 info : Creating InputStream
    2026-04-18 19:01:19.134 T:127 warning : AddOnLog: inputstream.adaptive: Warning "inputstream.adaptive.manifest_type" property is deprecated and will be removed next Kodi version, the manifest type is now automatically detected.
    If you are using a proxy remember to add the appropriate "content-type" header to the HTTP manifest response
    See Wiki page "How to provide custom manifest/license" to learn more about it.
    2026-04-18 19:01:19.135 T:127 info : AddOnLog: inputstream.adaptive: [Repr. chooser] Resolution set: 3840x2160, max allowed: 3840x2160, Adjust refresh rate: 1
    2026-04-18 19:01:19.461 T:130 error : [plugin.video.netflix (0)] Full MSL error information:
    2026-04-18 19:01:19.461 T:130 error : [plugin.video.netflix (0)] {"id": 177653167930565440, "version": 2, "serverTime": 1776531679402, "error": {"code": "FAIL", "detail": "licensedManifest/playapi-445: Playback not permitted by Content Usage Policies (E3-Bgilt-vcAxKdAgWT6z7xrTpzS6VnRq8jGGE7uqEZYNbAFtWx23CqiGiNz5OTd5WsBqoL0q_UrXZlViPtu-Wa0vDY30en8t4_3Qt-9ahn-1D2Z_GUv6Qr8Gy5taZK7nHIK7bbl8nkT5vSz_ECxusvNWqy6KSHR-V_i0Kmvr4kdTP3RGbz-k2hk79vqK5T5EAxGCg6T3adudsG4uxx_r2y5BmNrubtQS901egHca8e6co8sY4AOkezUaU12ceCzsS5QITvNY5LscwYfwrrHAbfl_sQcyGFs9epCbdsl5Xja4OwOdahGWGXKnBLOecw-cqHGcuqcgekz2pk1Jk-UGT4t2uhTr4iHqSSF9I2p5Tc9QpOdKUBvvffiyu-y2Xe3rt3olF_NmOKsxgGIg4KDIlN1IHKuRk04kRN0Q==) [viewableId=60020810]", "displayCode": "E100", "reportingCode": "PBCS-445", "display": "Deze titel is niet beschikbaar voor direct kijken. Probeer een andere titel.", "alertTag": "", "errorActionId": 3, "errorExternalCode": 0, "errorNccpCode": 0, "errorReasonCode": 0, "errorSubCode": 0, "errorDisplayMessage": "Deze titel is niet beschikbaar voor direct kijken. Probeer een andere titel.", "nccpError": {}, "bladeRunnerMessage": "licensedManifest/playapi-445: Playback not permitted by Content Usage Policies (E3-Bgilt-vcAxKdAgWT6z7xrTpzS6VnRq8jGGE7uqEZYNbAFtWx23CqiGiNz5OTd5WsBqoL0q_UrXZlViPtu-Wa0vDY30en8t4_3Qt-9ahn-1D2Z_GUv6Qr8Gy5taZK7nHIK7bbl8nkT5vSz_ECxusvNWqy6KSHR-V_i0Kmvr4kdTP3RGbz-k2hk79vqK5T5EAxGCg6T3adudsG4uxx_r2y5BmNrubtQS901egHca8e6co8sY4AOkezUaU12ceCzsS5QITvNY5LscwYfwrrHAbfl_sQcyGFs9epCbdsl5Xja4OwOdahGWGXKnBLOecw-cqHGcuqcgekz2pk1Jk-UGT4t2uhTr4iHqSSF9I2p5Tc9QpOdKUBvvffiyu-y2Xe3rt3olF_NmOKsxgGIg4KDIlN1IHKuRk04kRN0Q==) [viewableId=60020810]", "bladeRunnerCode": "445", "playbackContextId": "E3-Bgilt-vcAxKdAgWT6z7xrTpzS6VnRq8jGGE7uqEZYNbAFtWx23CqiGiNz5OTd5WsBqoL0q_UrXZlViPtu-Wa0vDY30en8t4_3Qt-9ahn-1D2Z_GUv6Qr8Gy5taZK7nHIK7bbl8nkT5vSz_ECxusvNWqy6KSHR-V_i0Kmvr4kdTP3RGbz-k2hk79vqK5T5EAxGCg6T3adudsG4uxx_r2y5BmNrubtQS901egHca8e6co8sY4AOkezUaU12ceCzsS5QITvNY5LscwYfwrrHAbfl_sQcyGFs9epCbdsl5Xja4OwOdahGWGXKnBLOecw-cqHGcuqcgekz2pk1Jk-UGT4t2uhTr4iHqSSF9I2p5Tc9QpOdKUBvvffiyu-y2Xe3rt3olF_NmOKsxgGIg4KDIlN1IHKuRk04kRN0Q==", "pboc": true}, "common": {"cadToken": "C1-Bgjtt-vcAxJcI4OW4R2DaDwwZRmltm2tEjdgWiA4FmPG7dUA7hTf1cJwTuQPNc7ZUoTqYCvrV-WrvTK0-OxFAO30W2xlmYU1RbA2PI7V1lam5JqJ08bIAGSaQhjVejpyWWlm5HAYBiIOCgxq_vx991VQxFIUWoo="}, "from": "playapi"}
    2026-04-18 19:01:19.474 T:7 info : Loading skin file: DialogConfirm.xml, load type: KEEP_IN_MEMORY

  17. WallyZambotti commented on Apr 20, 2026

    @WallyZambotti

    @Lamarqe : If the previous NFauthentication key is required then that is going to be an issue in two instances. 1) First time installers, who don't have an older setup. 2) When the authentication key eventually expires as it is designed to do!

  18. richardgoodin commented on Jul 9, 2026

    @richardgoodin

    Root cause: Netflix removed artwork nodes from the Falcor schema
    The pathEvaluator 404 is caused by the add-on requesting artwork paths that no longer exist server-side. Any request containing one of these paths returns 404 for the entire batch, which is why all browsing breaks.
    Reproduction
    Captured a working pathEvaluator request from Chrome DevTools (Copy as cURL), then replayed it with individual paths substituted. Same cookies, same session, same endpoint:
    path=["loco","componentSummary"] -> 200
    path=["loco",{"from":0,"to":50},"componentSummary"] -> 200
    path=["loco",{"from":0,"to":50},0,"reference",["title","summary"]] -> 200
    path=["loco",{"from":0,"to":50},{"from":0,"to":0},"reference",[...]] -> 200

    path=["loco",{"from":0,"to":50},0,"reference","boxarts",[...],"jpg","value"] -> 404
    path=["loco",{"from":0,"to":50},0,"reference","interestingMoment",[...],"jpg","value"] -> 404
    path=["loco",{"from":0,"to":50},0,"reference","artWorkByType",...,"png","value"] -> 404
    path=["loco",{"from":0,"to":50},0,"reference","storyArt","_665x375","jpg","value"] -> 404
    Artwork is not addressable under videos either:
    path=["videos",81605886,"boxarts",["_665x375"],"jpg","value"] -> 404
    path=["videos",81605886,"storyArt","_665x375","jpg","value"] -> 404
    path=["videos",81605886,"artWorkByType",...,"png","value"] -> 404
    path=["videos",81605886,"summary"] -> 200
    path=["videos",81605886,"itemSummary"] -> 200
    What replaced it
    Artwork now arrives embedded in the itemSummary atom rather than as separate Falcor nodes. Current web client responses contain, inside itemSummary.value:

    assets — keyed by role (logo, background), each with url, artWorkType, imageKey, width/height, tone
    videoAssets — e.g. horizontalBackground with motionUrl, motionId, autoPlay
    URLs are .webp, and the current client sends webp=true as a query param

    The web client no longer requests artwork paths at all.
    Things ruled out (all tested, all returned 200 when artwork paths were absent):

    Session/cookie validity — add-on's own NetflixId/SecureNetflixId from COOKIES work fine
    authURL — add-on's token accepted
    User-Agent (tested Chrome 108 and 140)
    x-netflix.* headers — not required
    Body encoding (raw vs percent-encoded)
    HTTP/1.1 vs HTTP/2
    Kodi's bundled requests 2.31.0 / urllib3 2.2.3 / OpenSSL 3.5.4 — reproduces 200 outside Kodi with a non-artwork path set
    Endpoint URL and query params — identical to the current web client

    Unrelated bug found along the way
    In http_requests.py, _prepare_request_properties():
    pythonauth_data = f'authURL={self.auth_url}'
    The authURL is inserted raw into an application/x-www-form-urlencoded body. Tokens containing /, +, or = are misparsed (+ becomes a space). Should be:
    pythonauth_data = 'authURL=' + quote(self.auth_url, safe='')
    Not the cause of the 404, but a real bug.
    Environment: add-on 1.23.5+matrix.1, LibreELEC, Kodi 21.

  19. shithead commented on Oct 8, 2026

    @shithead

    This was generated by AI during triage.

    Adjacent work to the root cause @richardgoodin identified above (artwork nodes
    removed from the Falcor schema): #1807 implements the replacement via Netflix'
    GraphQL endpoint, and keeps a halving/blacklist layer for retired paths instead
    of removing the artwork paths (the #1796 route).

    Two additions to that analysis:

    • GraphQL serves non-browser clients — verified with User-Agent: Kodi/20.0 and
      session cookies only (no browser fingerprint headers); complete artwork at the
      same dimensions as the captures. Reproducible via docs/graphql-probe.sh.
    • The surviving itemSummary card is used only as the poster fallback; the
      GraphQL Image nodes are the primary source.

    Branch + tests: #1807.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't workingTriage: NeededIssue that was just created and needs someone looking at it

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions