windmill-labs/windmill · error · Error
AgGrid Enterprise Edition require Windmill Enterprise…
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.
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
- Agent mode is only available in the EE, ignoring...
- Anthropic not initialized
- Backend runnable ' ' not found.
- Can only fork a script module
- Cannot reject module without a beforeFlow snapshot
AI-assisted analysis of windmill-labs/windmill@e474e8803c (2026-09-03).
Data as JSON: /api/errors/ddc0b039c7a71159.
Report an issue: GitHub.
Appendix: 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)