Coding

E-Sys CAFD Not Found (C012): Causes and Fixes

E-Sys says "File for cafd_... not found! [C012]"? Usually your PSdZData is older than the car. The three causes and the fix for each.

You right-click a module, choose Read Coding Data, and E-Sys answers with this:

FEM_BODY [40] readCPS o.k. CAFD_00000794_012_034_013
Fehler: File for "cafd_00000794-012_034_013" not found! [C012]

It usually shows up the first time you code a car that's just been back to the dealer. Nothing is broken. E-Sys is telling you it can't find the coding file the module is using.

Credits Cool

Everything here comes from the F30post thread Coding error. CAFD not found, started by nyczyar in 2014 and still getting answers in 2025. Most of the fixes are shawnsheridan's, with atzebmw on the folder problem. Thanks to both, and to everyone who posted their error logs.

What a CAFD Is

CAFD stands for Coding Application File Data. It's the file that describes how a module is coded. It isn't firmware, and picking an older one doesn't downgrade anything.

In the error above, cafd_00000794 is the file for FEM_BODY and the three numbers after it are its version. E-Sys looks for that exact version in your PSdZData. If it isn't there, you get C012.

Cause 1: Your PSdZData Is Older Than the Car

This is the usual one. The dealer updated the car for a recall or at a service, and the modules now carry newer CAFDs than your PSdZData has.

The fix is newer PSdZData. shawnsheridan's rule: it has to be the same as or newer than the last software the car was programmed with. You can read the car's current I-Step in E-Sys and compare, but the easy answer is to use the latest PSdZData. The Lite package is enough for coding (see PSdZData Full vs Lite).

Newer PSdZData also needs a newer E-Sys. shawnsheridan's note from 2022: injecting a CAFD or flashing with PSdZData 4.17.20 or newer needs E-Sys 3.30.0 or higher.

Cause 2: E-Sys Is Looking in the Wrong Folder

You downloaded new PSdZData and the error didn't change. Check where you put it. PSdZData belongs in C:\data\psdzdata, and E-Sys's options have to point there. In one case from 2021, the missing file was in the new PSdZData all along, but the folder was sitting on the desktop and E-Sys was still reading the old one.

Cause 3: The CAFD Was Never Released

This one is rare. In 2014, dealers put CAFDs on some cars that never showed up in any PSdZData release. Updating doesn't help, so you give the module a CAFD you do have:

  1. Connect, read the FA and click Activate FA.
  2. Click Read SVT.
  3. Left-click the module (the ECU itself, not the CAFD under it) and click Detect CAF for SWE.
  4. Pick a CAFD. shawnsheridan's advice is the one from the latest I-level, which is the bottom one in the list.
  5. Click OK, right-click the module and choose Code.

Once that's done you can FDL code the module as normal.

CAFD_FFFFFFFF_255_255_255

This looks similar but it's a different problem. The module's coding is corrupt, usually because a write was cut off halfway. The fix is the same as Cause 3: Detect CAF for SWE, pick the newest CAFD, code the module. Our F30 coding list has the story of one that came back in three minutes.

A Related Error: No FP Could Be Generated

If Activate FA fails with "no FP could be generated from FA. Not all elements of FA found in FA2FP", the cause is the same as Cause 1. atzebmw saw it with two older PSdZData versions and not with a newer one.

After the Fix

VO coding or injecting a CAFD puts the module back to factory coding for your FA. Any FDL changes you'd made to it are gone, including ones made with BimmerCode. sal785 found that out after three years of BimmerCode tweaks. Keep a list of your changes, so redoing them takes minutes.

The attached one-page PDF has the three causes and the inject steps. Want a laptop that won't drop the connection mid-write? See our coding laptop guide, or I can sort it remotely.

Files

  • E-Sys-CAFD-Not-Found.pdf