apache/superset · error · Error
Cannot convert node type: ${node.type}
Error message
Cannot convert node type: ${node.type} What it means
Raised in ExecuteNowCommand.validate when security_manager.raise_for_editorship(self._model) throws SupersetSecurityException: the current user does not have permission to change/execute this report schedule. Manual execution is gated on editorship, not merely ownership or can_read.
Source
Thrown at superset-frontend/plugins/plugin-chart-echarts/src/utils/safeEChartOptionsParser.ts:359
objResult[key] = value;
});
return objResult;
}
case 'ArrayExpression': {
const arrNode = node as Node & { elements: (Node | null)[] };
return arrNode.elements.map(elem => (elem ? astToValue(elem) : null));
}
case 'TemplateLiteral': {
const templateNode = node as Node & {
quasis: Array<Node & { value: { cooked: string } }>;
};
return templateNode.quasis.map(q => q.value.cooked).join('');
}
default:
throw new Error(`Cannot convert node type: ${node.type}`);
}
}
// =============================================================================
// Parse Result Types
// =============================================================================
interface ParseResult {
success: boolean;
data?: CustomEChartOptions;
}
// =============================================================================
// Public API
// =============================================================================
/**
* Safely parses a JavaScript object literal string into an ECharts options object.View on GitHub (pinned to f4587218dd)
Solutions
- Have the schedule owner (or an Admin) execute it, or grant the user edit permission on the schedule.
- Assign a role with can_update on ReportSchedule (e.g. via Settings > List Roles > ReportSchedule permissions).
- Transfer ownership of the schedule to the requesting user.
Defensive patterns
Strategy: validation
Validate before calling
from superset import security_manager
try:
security_manager.raise_for_editorship(schedule)
allowed = True
except SupersetSecurityException:
allowed = False Try / catch
try:
ExecuteNowCommand(g.user, schedule_id).run()
except ReportScheduleForbiddenError:
request_owner_or_admin_to_execute(schedule_id) Prevention
- Grant can_update on ReportSchedule to roles expected to trigger reports.
- Check edit rights in the UI before showing the Execute now button.
- For service accounts, include report-schedule edit permissions explicitly.
When it happens
Trigger: A user without the 'can edit' permission on the report schedule (not creator, not Admin, lacks the relevant RBAC role) calls the Execute now endpoint or UI action. raise_for_editorship enforces owner-or-privileged edit rights before dispatching the Celery task.
Common situations: Shared schedules owned by another user; Gamma/Alpha roles trying to trigger reports they can view but not edit; role changes after the schedule was created; service accounts missing the can_update schedule permission.
Related errors
- User doesn't have permission to create or update datasets
- Dashboard doesn't exist and user doesn't have permission to
- You don't have access to this dashboard.
- Changing this Dashboard is forbidden
- User does not have permission to update the theme
AI-assisted analysis of apache/superset@f4587218dd (2026-08-14).
Data as JSON: /api/errors/0e9c4676dcdabbbc.
Report an issue: GitHub.