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
  • 3 replies
  • 65 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().

 

3 replies

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.
JohnColombo17100380
Community Manager
Community Manager
July 28, 2026

Hi ​@FxFactory, following up on this — we built a test plug-in based on the SDK samples to dig in further.

What we tried

  • A sample effect that calls AEGP_GetEffectLayer() from PARAMS_SETUPSEQUENCE_SETUPSEQUENCE_RESETUPFRAME_SETUP, and RENDER, reporting results via About.
  • Tested both a freshly-applied instance and the same instance after save/close/reopen (to hit the SEQUENCE_RESETUP "old instance" path).
  • Ran both on AE 26.5 Beta (build 69) and the older AE 25.6, on macOS.

Results

  • PARAMS_SETUPNULL (A_Err_NONE) — identical on both 26.5 Beta and 25.6, in both scenarios.
  • SEQUENCE_SETUP/SEQUENCE_RESETUP/FRAME_SETUP/RENDER: valid handle — identical on both versions, both scenarios.

We're not seeing a version difference with a basic effect we tried. This is also consistent with AEGP_PFInterfaceSuite1's own docs, which only list FRAME_SETUP/RENDER/Event_DRAW as supported for this call.

A few things that would help us narrow it down:

  • Are there any PF_OutFlag/PF_OutFlag2 your plug-in sets (variable params, custom UI, etc.) when you reproduce the bug?
  • How do you distinguish which PARAMS_SETUP invocation you're checking?
  • Was your test project originally saved in a pre-26.3 version and reopened in 26.3+, rather than created fresh?

Cheers,

- John, After Effects Engineering Team