windmill-labs/windmill · error · Error
AgGrid Enterprise Edition require Windmill Enterprise Editio
Error message
AgGrid Enterprise Edition require Windmill Enterprise Edition
What it means
Inserting an AgGrid component of type 'aggridcomponentee' (Enterprise Edition grid) requires a Windmill Enterprise Edition license. When no enterprise license is active, insertNewGridItem shows a toast and throws to block adding the component.
Source
Thrown at frontend/src/lib/components/apps/editor/appUtils.ts:552
export function insertNewGridItem(
app: App,
builddata: (id: string) => AppComponent,
focusedGrid: FocusedGrid | undefined,
columns?: Record<string, any>,
keepId?: string,
initialPosition: { x: number; y: number } = { x: 0, y: 0 },
recOverride?: Record<number, Size>,
keepSubgrids?: boolean,
fixed?: boolean,
shouldNotFindSpace?: boolean
): string {
const id = keepId ?? getNextGridItemId(app)
const data = builddata(id)
if (data.type == 'aggridcomponentee' && !get(enterpriseLicense)) {
sendUserToast('AgGrid Enterprise Edition require Windmill Enterprise Edition', true)
throw Error('AgGrid Enterprise Edition require Windmill Enterprise Edition')
}
if (!app.subgrids) {
app.subgrids = {}
}
// We only want to set subgrids when we are not moving
if (!keepId || keepSubgrids) {
for (let i = 0; i < (data.numberOfSubgrids ?? 0); i++) {
app.subgrids[`${id}-${i}`] = []
}
}
const key = focusedGrid
? `${focusedGrid?.parentComponentId}-${focusedGrid?.subGridIndex ?? 0}`
: undefined
if (key && app.subgrids[key] === undefined) {
let parent = findGridItemById(app.grid, app.subgrids, key)?.dataView on GitHub (pinned to e474e8803c)
Solutions
- Use the community 'aggridcomponent' instead of 'aggridcomponentee'
- Obtain and activate a Windmill Enterprise Edition license (instance settings) and reload the editor
- Remove the EE grid components when copying apps between community and EE instances
Example fix
// before (component def)
{ type: 'aggridcomponentee', ... }
// after
{ type: 'aggridcomponent', ... } Defensive patterns
Strategy: validation
Validate before calling
import { get } from 'svelte/store'; import { enterpriseLicense } from '$lib/stores'; if (componentType === 'aggridcomponentee' && !get(enterpriseLicense)) { alert('EE AgGrid requires an Enterprise license'); } Type guard
function canInsertEeGrid(licensed: boolean): boolean { return licensed; } Try / catch
try { insertNewGridItem(app, data); } catch (e) { if (String(e.message).includes('Enterprise Edition')) { sendUserToast('Switch to the community aggridcomponent or activate an EE license.', true); } else throw e; } Prevention
- Use 'aggridcomponent' (community) unless the instance is licensed EE
- Check the license store before templates/pastes that embed EE components
- Validate EE components after copying apps between community and EE instances
When it happens
Trigger: Adding or pasting an aggridcomponentee component in the app editor (newItem, handlePaste, moveComponentBetweenSubgrids, moveToRoot, setUpTopBarComponentContent) while get(enterpriseLicense) is falsy.
Common situations: Community-edition instance trying to use EE-only AgGrid features; license expired or not loaded on the instance; duplicating/pasting an app section containing an EE grid into a community instance.
Related errors
- No model selected
- No workspace available
- Unimplemented case
- Unsupported database type: ${dbType}
- Original foreign key missing constraint name : ${JSON.string
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/ddc0b039c7a71159.
Report an issue: GitHub.