Content Scripts Permission Error: Invalid content permissions specified: blob:

Running @forge/cli 4.1.1, I am having issues using the blob content permission explained here: https://developer.atlassian.com/platform/forge/manifest-reference/permissions/#content-permissions

My manifest looks like this in the relevant parts:

  content:
    styles:
      - unsafe-inline
    scripts:
      - 'unsafe-inline'
      - 'blob:'

However I’m getting the following error:

Result: {
  "appDeployment": {
    "status": "FAILED",
    "errorDetails": {
      "code": "HOSTED_RESOURCE_INVALID_EGRESS_PERMISSIONS",
      "message": "Invalid content permissions specified: blob:",
      "fields": null
    },
    "stages": [
      {
        "description": "Validating manifest",
        "events": [
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Init deployment",
            "createdAt": "2022-04-13T04:40:11.317Z",
            "newStatus": "STARTED"
          },
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Init deployment",
            "createdAt": "2022-04-13T04:40:11.511Z",
            "newStatus": "DONE"
          },
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Download manifest",
            "createdAt": "2022-04-13T04:40:11.513Z",
            "newStatus": "STARTED"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Download manifest",
            "createdAt": "2022-04-13T04:40:11.514Z",
            "message": "Upload URL is valid",
            "level": "INFO"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Download manifest",
            "createdAt": "2022-04-13T04:40:11.716Z",
            "message": "Found manifest file",
            "level": "INFO"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Download manifest",
            "createdAt": "2022-04-13T04:40:11.719Z",
            "message": "Manifest is a valid YAML",
            "level": "INFO"
          },
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Download manifest",
            "createdAt": "2022-04-13T04:40:11.720Z",
            "newStatus": "DONE"
          },
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Validate manifest",
            "createdAt": "2022-04-13T04:40:11.722Z",
            "newStatus": "STARTED"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Validate manifest",
            "createdAt": "2022-04-13T04:40:11.881Z",
            "message": "Manifest passed common validations",
            "level": "INFO"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Validate manifest",
            "createdAt": "2022-04-13T04:40:11.882Z",
            "message": "Manifest doesn't have forbidden modules",
            "level": "INFO"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Validate manifest",
            "createdAt": "2022-04-13T04:40:11.883Z",
            "message": "Manifest passed function names validations",
            "level": "INFO"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Validate manifest",
            "createdAt": "2022-04-13T04:40:11.884Z",
            "message": "Manifest passed cleanup function validation",
            "level": "INFO"
          },
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Validate manifest",
            "createdAt": "2022-04-13T04:40:11.885Z",
            "newStatus": "DONE"
          }
        ]
      },
      {
        "description": "Snapshotting functions",
        "events": [
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Generate snapshot step",
            "createdAt": "2022-04-13T04:40:11.887Z",
            "newStatus": "STARTED"
          },
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Generate snapshot step",
            "createdAt": "2022-04-13T04:40:12.758Z",
            "newStatus": "DONE"
          }
        ]
      },
      {
        "description": "Deploying to environment",
        "events": [
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Validate hosted resource upload step",
            "createdAt": "2022-04-13T04:40:12.759Z",
            "newStatus": "STARTED"
          },
          {
            "__typename": "AppDeploymentLogEvent",
            "stepName": "Validate hosted resource upload step",
            "createdAt": "2022-04-13T04:40:13.092Z",
            "message": "Invalid content permissions specified: blob:",
            "level": "WARNING"
          },
          {
            "__typename": "AppDeploymentTransitionEvent",
            "stepName": "Validate hosted resource upload step",
            "createdAt": "2022-04-13T04:40:13.094Z",
            "newStatus": "FAILED"
          }
        ]
      }
    ]
  }
}
  Invalid content permissions specified: blob:

Error: Deployment failed

Error: Deployment failed
    at ArtifactDeployer.handleErrorEvent (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:151:15)
    at ArtifactDeployer.pollAndCheckEvents (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:61:18)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async ArtifactDeployer.monitorDeployment (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:72:28)
    at async ArtifactDeployer.deploy (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/deployer/deployer.js:36:9)
    at async PackageUploadDeployCommand.execute (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/deploy/package-upload-deploy.js:14:9)
    at async CommandLineUI.displayProgress (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/node_modules/@forge/cli-shared/out/ui/command-line-ui.js:44:28)
    at async DeployView.reportDeploymentProgress (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/command-line/view/deploy-view.js:50:24)
    at async DeployController.run (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/command-line/controller/deploy-controller.js:122:27)
    at async Command.actionProcessor (/home/brian/.nvm/versions/node/v16.14.2/lib/node_modules/@forge/cli/out/command-line/command.js:76:32)

I’m likely missing something simple, but the documentation on this feature is a bit sparse, so please advise!

Thanks in advance.

This issue has been fixed as per: