{"record":{"id":"12809e7443a145e3","repo":"apolloconfig/apollo","slug":"env-s-is-not-supported-emergency-publish-now-12809e","errorCode":null,"errorMessage":"Env: %s is not supported emergency publish now","messagePattern":"Env: (.+?) is not supported emergency publish now","errorType":"validation","errorClass":"BadRequestException","httpStatus":400,"severity":"error","filePath":"apollo-portal/src/main/java/com/ctrip/framework/apollo/openapi/v1/controller/ReleaseController.java","lineNumber":250,"sourceCode":"    releaseModel.setNamespaceName(namespaceName);\n    releaseModel.setReleaseTitle(releaseDTO.getReleaseTitle());\n    releaseModel.setReleaseComment(releaseDTO.getReleaseComment());\n    releaseModel.setReleasedBy(releasedBy);\n    releaseModel.setEmergencyPublish(Boolean.TRUE.equals(releaseDTO.getIsEmergencyPublish()));\n    return releaseModel;\n  }\n\n  private String payloadReleasedBy(NamespaceReleaseDTO releaseDTO) {\n    return releaseDTO == null ? null : releaseDTO.getReleasedBy();\n  }\n\n  private void checkEmergencyPublishAllowedForUser(String env, boolean emergencyPublish) {\n    String authType = UserIdentityContextHolder.getAuthType();\n    if (emergencyPublish\n        && (UserIdentityConstants.USER.equals(authType)\n            || UserIdentityConstants.USER_TOKEN.equals(authType))\n        && !portalConfig.isEmergencyPublishAllowed(Env.valueOf(env))) {\n      throw new BadRequestException(\"Env: %s is not supported emergency publish now\", env);\n    }\n  }\n\n  private String resolveOperator(String queryOperator, String payloadOperator) {\n    String authType = UserIdentityContextHolder.getAuthType();\n    if (UserIdentityConstants.USER.equals(authType)\n        || UserIdentityConstants.USER_TOKEN.equals(authType)) {\n      UserInfo loginUser = userInfoHolder.getUser();\n      if (loginUser == null || StringUtils.isBlank(loginUser.getUserId())) {\n        throw new BadRequestException(\"Current user not found\");\n      }\n      return loginUser.getUserId();\n    }\n\n    if (UserIdentityConstants.CONSUMER.equals(authType)) {\n      String operator = StringUtils.isBlank(queryOperator) ? payloadOperator : queryOperator;\n      RequestPrecondition.checkArguments(!StringUtils.isContainEmpty(operator),\n          \"operator should not be null or empty\");","sourceCodeStart":232,"sourceCodeEnd":268,"githubUrl":"https://github.com/apolloconfig/apollo/blob/d95fc18d112589efc09ddcbe1507047584d55251/apollo-portal/src/main/java/com/ctrip/framework/apollo/openapi/v1/controller/ReleaseController.java#L232-L268","documentation":"Thrown when a portal user or user token attempts an emergency publish in an environment where emergency publish is disabled by portal configuration. Consumer tokens are exempt from this check.","triggerScenarios":"Thrown when an emergency publish is requested via the OpenAPI release endpoint for an environment whose portaldb ServerConfig does not enable emergency publish.","commonSituations":"The env (e.g. PROD) has emergency publish disabled in config; the caller passes an env name that is not configured for emergency publish.","solutions":["Do not set isEmergencyPublish=true for this environment; publish a normal release instead.","Have an Apollo administrator enable emergency publish for the environment via the portal config (apollo.portal.emergencyPublish.allowed or equivalent per-env setting).","Retry the release without the emergencyPublish flag."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"d95fc18d112589efc09ddcbe1507047584d55251","analyzedAt":"2026-08-14T04:00:05.477Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}