Skip to main content
FxFactory
Inspiring
July 3, 2026

After Effects 26.4 SDK Regression: AEGP_GetEffectLayer() no longer returns valid handle when invoked during PF_Cmd_PARAMS_SETUP

  • July 3, 2026
  • 1 reply
  • 44 views

As first discovered in After Effects 26.3, third-party plugins based on the AE SDK can no longer expect to receive a valid AEGP_LayerH via AEGP_PFInterfaceSuite1->AEGP_GetEffectLayer() if the call is made while the plug-in is handling the PF_Cmd_PARAMS_SETUP command.

It is unclear how this affects all third-party plugins running in AE. The side effects for FxFactory plug-ins thankfully appear to be marginal. Our plugins are invoking that function during PF_Cmd_PARAMS_SETUP in order to compute the in/out points of the effect clip by using the AEGP_LayerH in subsequent calls to AEGP_LayerSuite7->AEGP_GetLayerInPoint() and AEGP_LayerSuite7->AEGP_GetLayerDuration().

 

1 reply

JohnColombo17100380
Community Manager
Community Manager
July 7, 2026

Hi ​@FxFactory,

Thank you for the detailed report — this is very helpful. We’ll need to reproduce this locally to diagnose the issue, so a few follow-up questions:

Environment

  • Does this issue reproduce in the latest 26.5 Beta builds of After Effects?
  • Which exact build are you seeing this on (26.3 first appearance vs. 26.4)? Version number down to the point release would help, plus OS (macOS/Windows) and version.
  • Is this reproducible on both platforms, or only one so far?

Repro Details

  • Can you share a minimal sequence of SDK calls that triggers it?
  • Does the invalid handle show up on every PARAMS_SETUP call, or only under certain conditions (e.g., first application of the effect vs. re-opening a saved project, specific layer types, precomps vs. footage layers)?
  • What does "no longer returns a valid handle" look like concretely — is the returned AEGP_LayerH null, non-null but stale/dangling (crashes or garbage data on subsequent suite calls), or does the call itself return a failure A_Err?

Downstream effect

  • You mentioned it feeds into AEGP_GetLayerInPoint() and AEGP_GetLayerDuration() — do those calls fail outright, return zero/garbage values, or crash?
  • If you have a minimal test plugin (even a stripped-down SDK sample like "Skeleton" or "Checkout" modified to log the handle) that reproduces this in isolation, that would be extremely helpful to attach here.

 

Thanks again for flagging this, and for any further information you can provide.

Cheers,

- John, After Effects Engineering Team 

 

FxFactory
FxFactoryAuthor
Inspiring
July 22, 2026

Hi John,

I tried to answer as many of your questions as possible below:

Environment

  • The bug is reproducible in AE 26.3 (public release at the time of this writing)
  • The bug is reproducible in AE 26.5 Beta (build 69)
  • Our plugins are Mac only so I can’t say if this affects Windows too

Repro Details

  • When your AE plug-in handles the PF_Cmd_PARAMS_SETUP, have it attempt to extract the equivalent AEGP_LayerH, e.g.: 

AEGP_PFInterfaceSuite1->AEGP_GetEffectLayer(_in_data->effect_ref, & aegpEffectLayer);

Then the aegpEffectLayer in the pseudo-code example above will be nil, meaning that during params setup plug-ins can no longer use any APIs that require a valid AEGP Layer handle.

As fas as I can tell (and know from using the SDK) Params Setup is called with identical semantics both on new and old instances of the effect. And the regression indeed exists for both old and new instances of any effect.

  • The call to AEGP_GetEffectLayer returns NULL (as opposed to a garbage pointer). 

Downstream Effect

  • Our code simply avoids calling AEGP_GetLayerInPoint() or AEGP_GetLayerDuration() as it wouldn’t make any sense to call those with a NULL layer parameter handle, at least based on how I know those calls to work, and the information you can learn from the SDK docs.
  • No minimal test plugin, sorry! I would have to start from scratch to provide one, since all our plugins go through a single monolithic runtime. If I were to provide one I’d have to start from one of the SDK examples.