Plugin not permitted to access the network apis

Hello! I’m working on a panel plugin for Premiere Pro and would like to be able to submit requests to a REST API. I followed the steps outlined in the docs– added the permissions to manifest.json, rebuilt, and tried reloading, removing, and re-adding the plugin in UDT multiple times. Still, I seem to be getting a connection error about not having a valid domains entry (even though I do). I’ve tried both adding “domains”: “all” as well as the specific domains I need to access, but to no success. Is there some other underlying issue that could be the cause? My other permissions, like localFileSystem, are working. I am on a Mac and using HTTP for the API requests. Thank you for any insight you are able to provide.


Can you share your full manifest? I would recommend listing the actual domains, that generally works better than all I’ve found.

Yes, thanks for your help. Here’s my manifest.json.

{
  "id": *(my panel ID)*,
  "name": *(my panel name)*,
  "version": "1.0.0",
  "main": "index.html",
  "manifestVersion": 5,
  "host": [
    {
      "app": "premierepro",
      "minVersion": "25.4.0"
    }
  ],
  "requiredPermissions": {
    "network": {
      "domains": "all" *(or the actual domain, like: ["http://hostname:port"] or ["http://hostname:port/"]  )*
    },
    "localFileSystem": "fullAccess",
    "allowCodeGenerationFromStrings": true,
    "launchProcess": {
      "schemes": [
        "http",
        "https"
      ],
      "extensions": [
        ".svg",
        ".png"
      ]
    },
    "webview": {
      "allow": "yes",
      "domains": [
        "https://*.adobe.com"
      ]
    }
  },
  "entrypoints": [
    {
      "type": "panel",
      "id": "apps",
      "label": {
        "default": "Starter Panel"
      },
      "minimumSize": {
        "width": 230,
        "height": 200
      },
      "maximumSize": {
        "width": 2000,
        "height": 2000
      },
      "preferredDockedSize": {
        "width": 230,
        "height": 300
      },
      "preferredFloatingSize": {
        "width": 230,
        "height": 300
      },
      "icons": [
        {
          "width": 32,
          "height": 32,
          "path": "icons/icon_D.png",
          "scale": [
            1,
            2
          ],
          "theme": [
            "dark",
            "darkest"
          ],
          "species": [
            "generic"
          ]
        },
        {
          "width": 32,
          "height": 32,
          "path": "icons/icon_N.png",
          "scale": [
            1,
            2
          ],
          "theme": [
            "lightest",
            "light"
          ],
          "species": [
            "generic"
          ]
        }
      ]
    }
  ],
  "icons": [
    {
      "width": 32,
      "height": 32,
      "path": "icons/icon_D.png",
      "scale": [
        1,
        2
      ],
      "theme": [
        "dark",
        "darkest"
      ],
      "species": [
        "generic"
      ]
    },
    {
      "width": 32,
      "height": 32,
      "path": "icons/icon_N.png",
      "scale": [
        1,
        2
      ],
      "theme": [
        "lightest",
        "light"
      ],
      "species": [
        "generic"
      ]
    }
  ]
}

And are you making fetch() requests or loading assets or what exactly?

I’m making fetch requests, using await fetch(endpoint)– the REST API endpoint I’m trying to reach is one of the domains I specify in domains in manifest.json, plus a Uri, like http://hostname:port/Rest/Uri. I’ve also tried including the full endpoint with the Uri exactly as I would provide as an argument to fetch in domains, but that didn’t help.

Just tested with a Bolt UXP PPRO template on PPRO on MacOS and it’s working.

I’d double check the spelling is exactly the same of the domains.

Or you can try this sample built project and use the manifest / to make sure it works by running await fetch('https://hyperbrew.co') in the UXP Dev Tools Console

image

Biggest difference is manifest v6, not sure if that is the culprit.

bolt-uxp-ppro-build.zip (255.6 KB)

I verified that there are no spelling errors, and tried manifest version 6-- still nothing. With the sample project, await fetch('https://hyperbrew.co') is working.

1 Like

Have you tried add your domains without the port number? I wonder if it behaves differently if you specify a port.

Tried that just now, still no luck. I have also tried using IP address instead of hostname.

If await fetch('https://hyperbrew.co') works, then it may be something to do with the server configuration. Is this your REST API? Are there headers that the REST API expects? Can you see if the server is logging anything from UXP?

Are you still getting the Plugin is not permitted to access the network apis error message or a different error?

If you’re getting that same one, it would suggest it’s a problem with UXP manifest allowing the domain for some reason.

Can you try requesting the same domain without a port number to see if that works? Maybe the port number is throwing off the validation.

Sorry, I should clarify that await fetch('https://hyperbrew.co') is working only with the Bolt sample project that justin2taylor provided, not with my panel. No requests-- my REST API, nor hyperbrew, nor any public API or locally running API that I’ve tried-- seem to be working with my panel, even when I add the appropriate domains in manifest.json.

As for my REST API, the server has no logs but the request I want to make is working in my browser as well as all of my other React TypeScript apps with the exact same URL and method (copied and pasted the code) that I’m calling in my panel, so I don’t think it is the issue, but I could be wrong.

Manifests are finicky. Might want to just use the one I provided and then add your properties back to it, instead of the other way around. If no API calls are working in your panel then it’s definitely a problem with your manifest permissions.

Also, make sure to unload and re-load the panel after changing the manifest. Sometimes remove and re-add it just to be safe.

Yes, still getting the same error, “Plugin is not permitted to access the network apis. A valid domains entry is required in requiredPermissions.network field of the manifest.”

I tried requesting the same domain without a port number but got the same error.

Yes, I’ll try using the one you provided and adding my properties back and see if that works. Also, thank you for your help and patience!

EDIT: After replacing my manifest.json with yours and fixing some new issues that appeared with my webpack.config.cjs, I was able to get my API requests to work with “domains”: “all”! Thank you so much!