apache/dolphinscheduler · error · ServiceException
USER_NO_OPERATION_PERM
USER_NO_OPERATION_PERM
Error message
USER_NO_OPERATION_PERM
What it means
Thrown by AlertPluginInstanceServiceImpl.create when the calling user lacks create permission for alert plugin instances (canOperatorPermissions with AuthorizationType.ALERT_PLUGIN_INSTANCE and ALERT_INSTANCE_CREATE fails). Alert plugin instance management is admin/authorized-only.
Source
Thrown at dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/AlertPluginInstanceServiceImpl.java:101
@Autowired
private RegistryClient registryClient;
/**
* creat alert plugin instance
*
* @param loginUser login user
* @param pluginDefineId plugin define id
* @param instanceName instance name
* @param pluginInstanceParams plugin instance params
*/
@Override
public AlertPluginInstance create(User loginUser,
int pluginDefineId,
String instanceName,
String pluginInstanceParams) {
if (!canOperatorPermissions(loginUser, null, AuthorizationType.ALERT_PLUGIN_INSTANCE, ALERT_INSTANCE_CREATE)) {
throw new ServiceException(Status.USER_NO_OPERATION_PERM);
}
AlertPluginInstance alertPluginInstance = new AlertPluginInstance();
String paramsMapJson = parsePluginParamsMap(pluginInstanceParams);
alertPluginInstance.setPluginInstanceParams(paramsMapJson);
alertPluginInstance.setInstanceName(instanceName);
alertPluginInstance.setPluginDefineId(pluginDefineId);
if (alertPluginInstanceMapper.existInstanceName(alertPluginInstance.getInstanceName()) == Boolean.TRUE) {
throw new ServiceException(Status.PLUGIN_INSTANCE_ALREADY_EXISTS);
}
int i = alertPluginInstanceMapper.insert(alertPluginInstance);
if (i > 0) {
log.info("Create alert plugin instance complete, name:{}", alertPluginInstance.getInstanceName());
return alertPluginInstance;
}
throw new ServiceException(Status.SAVE_ERROR);View on GitHub (pinned to 02eac45a1b)
Solutions
- Use an admin account (or one authorized for alert plugin instances)
- Have an admin grant ALERT_PLUGIN_INSTANCE authorization to the user
- Verify user permissions before invoking create
Defensive patterns
Strategy: validation
Validate before calling
boolean canCreate = permissionService.hasPermission(loginUser, null, AuthorizationType.ALERT_PLUGIN_INSTANCE, ALERT_INSTANCE_CREATE);
if (!canCreate) throw new IllegalStateException("no permission to create alert plugin instance"); Prevention
- Use admin accounts for alert plugin instance provisioning
- Grant ALERT_PLUGIN_INSTANCE authorization where needed
- Rotate tokens after permission changes and re-verify
When it happens
Trigger: Calling POST /alert-plugin-instances (AlertPluginInstanceService.create) with a loginUser who has no ALERT_PLUGIN_INSTANCE create permission.
Common situations: Non-admin users attempting to configure alert channels via API; automation using a low-privilege token; permission revocations unnoticed by long-running scripts.
Understand the failure class
Background: Permission denied / not authorized / 403 Forbidden: access-control rejections when the caller lacks the required role, grant, or ownership — this error's family across 18 libraries.
Related errors
- RESOURCE_NOT_EXIST_OR_NO_PERMISSION
- USER_NO_OPERATION_PERM
- 30001
- USER_NO_OPERATION_PERM
- USER_NO_OPERATION_PERM
AI-assisted analysis of apache/dolphinscheduler@02eac45a1b (2026-09-06).
Data as JSON: /api/errors/3515ac139b2cc322.
Report an issue: GitHub.