Resolving Utah-SOM-Error in STEP 7 / WinCC Flexible HMI Insert

David Krause12 min read
HMI / SCADASiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Problem Overview

Engineers integrating SIMATIC HMI stations into STEP 7 V5.5 projects that use WinCC flexible 2005 SP3 on Windows 7 occasionally hit a hard fault thrown by the STEP 7 → WinCC flexible integration bridge. The fault dialog appears immediately when the user selects Insert > SIMATIC HMI Station from SIMATIC Manager, even when the project database itself is healthy and the HMI component can otherwise be opened directly inside WinCC flexible.

The full message reads:

Utah-SOM-Error !
File: ObjCreator.cpp, Line 2347
Text: Exception in GetUtahDeviceType !

After the dialog, WinCC flexible either fails to instantiate, hangs at load, or terminates with "WinCC flexible has stopped responding." The base STEP 7 project continues to function, but no HMI can be added or re-linked until the error is cleared.

Symptom signature that confirms this article's scope:
  • Direct launch of WinCC flexible (Start → SIMATIC → WinCC flexible) → no error.
  • Insertion of SIMATIC HMI Station from SIMATIC Manager → error appears.
  • Same project opens cleanly on a different engineering station.
  • Reinstalling SIMATIC Manager and WinCC flexible does not resolve the issue.

2. Affected Software Matrix

Component Confirmed version in the reported fault Notes
SIMATIC Manager (STEP 7) V5.5 + latest Service Pack at time of install Integration is shipped as a sub-component of STEP 7; service pack level must match the WinCC flexible integration package.
WinCC flexible 2005 SP3 (also referenced as "2008 SP3" in some repair notes — see Section 5.1) 2005 and 2008 share the same "Utah" internal project name; mismatch with STEP 7 SP level is a leading cause.
Integration package WinCC flexible Integration in STEP 7 Installed separately from the WinCC flexible runtime/ES; lives under Siemens\Automation\WinCC flexible.
Operating system Windows 7 (32/64-bit — both reported) UAC, WOW64 redirection, and DCOM defaults are the most common aggravators.

3. Root Cause Analysis

The literal text of the fault is generated by the C++ object factory that links STEP 7's project tree to WinCC flexible's device catalogue. Decoding the message:

Token Meaning
Utah Internal development code name of WinCC flexible. Many integration DLLs and registry hives are still keyed under this token.
SOM Service Object Manager — the COM service that brokers device-type enumeration between SIMATIC Manager and the WinCC flexible ES.
ObjCreator.cpp Object factory inside the integration component. Called whenever a new HMI device object is instantiated in the STEP 7 project tree.
GetUtahDeviceType() Method that returns the catalogue of available HMI panel types (KTP, TP, MP, OP, Mobile Panel, Multi Panel, WinCC flexible Runtime). Failure here means the catalogue cannot be enumerated for the current project context.
Line 2347 Code path that calls GetUtahDeviceType() without exception shielding — the first unhandled error terminates the entire insertion transaction.

Because the error originates inside the COM bridge and not in the WinCC flexible editor itself, launching WinCC flexible standalone works fine; the breakage only surfaces when the integration layer is the entry point.

3.1 The five most common triggers

  1. Broken or version-skewed integration package. The most frequent cause. The "WinCC flexible Integration in STEP 7" add-in is registered as a SIMATIC Manager extension; a partial uninstall, an interrupted SP update, or a mismatched WinCC flex / STEP 7 SP level leaves the COM registration pointing at a DLL that no longer matches the editor.
  2. Corrupted HMI device catalogue (UtahDevices.mdb / HmiDevice.db). The catalogue is read by GetUtahDeviceType(). If the file is locked, zero-length, or belongs to a different language/locale install, enumeration throws.
  3. Windows 7 UAC and file-virtualization redirect. WinCC flexible 2005 SP3 was not authored for UAC; catalogue files written to Program Files (x86)\Siemens can be silently virtualized to a per-user store, leaving the system-wide copy empty.
  4. DCOM / COM security defaults tightened by Windows 7 SP1 or by corporate GPO. The SOM service requires default launch and access permissions; hardened environments break the inter-process call.
  5. Project-side corruption. The .s7p project carries a reference to an HMI station whose device-type GUID is no longer present in the installed catalogue (typical after a downgrade or a partial backup restore).

4. Pre-Diagnostic Checklist

Before changing any installation state, capture the following. They will identify which of the five triggers above is in play and prevent chasing the wrong fix.

  1. Open SIMATIC Manager → Help → About and record the exact STEP 7 version + service pack + hotfix.
  2. Open WinCC flexible standalone → Help → About. Record the WinCC flexible build number (look for the 2005 SP3 / 2008 SP3 string and the internal build, e.g. K05.05.03.00_01.01.04.02).
  3. Run regedit and export:
    • HKEY_LOCAL_MACHINE\SOFTWARE\Siemens\Automation\WinCC flexible (and the WOW6432Node mirror on 64-bit Windows)
    • HKEY_CLASSES_ROOT\CLSID entries whose InprocServer32 path contains Utah or WinCCflex
  4. Capture the catalogue files:
    • %ProgramFiles%\Siemens\Automation\WinCC flexible\HmiDevice\HmiDevice.db
    • %ProgramFiles(x86)%\Siemens\Automation\WinCC flexible\HmiDevice\HmiDevice.db (on 64-bit Windows, this is the real path)
    • %USERPROFILE%\AppData\Local\VirtualStore\Program Files (x86)\Siemens\Automation\WinCC flexible\HmiDevice\ — note any file present here. If it is non-empty, UAC virtualization is active.
  5. Open Event Viewer → Windows Logs → Application and filter for the source Application Error and ESENT from the moment of the failed insertion. ESENT errors on HmiDevice.db point directly to a corrupted catalogue.
Engineering rule: never delete a registry hive or catalogue file during diagnosis — rename it (e.g. HmiDevice.db → HmiDevice.db.bak) so the original can be restored if the chosen remediation misfires.

5. Solution 1 — Reinstall the WinCC flexible Integration Package

This is the fastest resolution and resolves trigger #1 in roughly 80% of reported incidents. It is the same remediation Siemens support escalates first when the SOM error is the only symptom.

5.1 Confirm the integration version

Open Control Panel → Programs and Features and look for the entry "WinCC flexible 2008 SP3 Integration in STEP 7" (or the 2005 SP3 equivalent). The integration entry is separate from the main "WinCC flexible 2008 SP3" entry; both must be present, and both must show the same SP level. A frequent misconfiguration is having the WinCC flexible editor at 2005 SP3 and the integration at 2008 SP3 (or vice-versa). When in doubt, match them.

5.2 Remove the integration only

  1. Close SIMATIC Manager and WinCC flexible.
  2. Control Panel → Programs and Features → WinCC flexible ... Integration in STEP 7 → Uninstall.
  3. Restart the engineering station. Do not skip the restart — the COM service caches registrations until the SCM is reloaded.

5.3 Reinstall the matching integration

  1. Insert the original installation medium (DVD or mounted ISO) that matches your WinCC flexible editor build. Using the wrong medium is the most common reason "I reinstalled and it still fails."
  2. Run Setup.exe as Administrator (right-click → Run as administrator).
  3. In the package selection, tick WinCC flexible Integration in STEP 7. Do not modify the WinCC flexible ES selection.
  4. Complete the wizard. When prompted, allow the installer to register COM components.
  5. Reboot.

5.4 Verify the COM registration

After reboot, run from an elevated command prompt:

reg query "HKLM\SOFTWARE\Siemens\Automation\WinCC flexible" /s > C:\Temp\WinCCflex_reg.txt
reg query "HKCR\CLSID" /f "Utah" /s >> C:\Temp\WinCCflex_reg.txt

Open C:\Temp\WinCCflex_reg.txt and confirm:

  • A CLSID entry whose InprocServer32 points at a DLL under the freshly installed path.
  • The path does not contain a "! UPDATE!" or "! UNINSTALL!" token (these are left behind by MSI rollback).

6. Solution 2 — Clean Reinstall of STEP 7 + WinCC flexible

Use this path if the integration reinstall did not clear the error, or if the Event Viewer shows ESENT corruption on the device catalogue. It addresses triggers #1, #2, and #3 in one pass.

6.1 Capture the authorisation

  1. Open the Automation License Manager.
  2. From each disk location, right-click the STEP 7 and WinCC flexible licenses and select Backup.... Store the .zip on a network share — a clean reinstall will re-format the local license archive.

6.2 Uninstall order matters

Reverse installation order is mandatory. The integration add-in must come off before STEP 7, which must come off before WinCC flexible.

  1. Uninstall "WinCC flexible ... Integration in STEP 7".
  2. Uninstall "SIMATIC STEP 7 V5.5".
  3. Uninstall all "WinCC flexible ..." entries, including any ES, Runtime, Options, and Migration packages.
  4. Reboot.

6.3 Purge residual state

After the uninstall reboot, manually remove the artifacts the installer leaves behind. Open an elevated command prompt:

rmdir /S /Q "%ProgramFiles%\Siemens\Automation"
rmdir /S /Q "%ProgramFiles(x86)%\Siemens\Automation"
rmdir /S /Q "%CommonProgramFiles%\Siemens"
rmdir /S /Q "%CommonProgramFiles(x86)%\Siemens"
rmdir /S /Q "%USERPROFILE%\AppData\Local\VirtualStore\Program Files (x86)\Siemens"
rmdir /S /Q "%USERPROFILE%\AppData\Local\VirtualStore\Program Files\Siemens"
del /Q "%APPDATA%\Siemens\*.log"

Then in regedit (elevated), delete — after exporting a backup:

  • HKLM\SOFTWARE\Siemens\Automation
  • HKLM\SOFTWARE\Wow6432Node\Siemens\Automation
  • HKCR subkeys whose default value contains WinCCflex or Utah (search with Ctrl+F).
Do not delete the entire Siemens registry tree if other Siemens software (e.g. PCS 7, STEP 7 Professional, Startdrive) is installed. Scope the deletions to the keys listed above.

6.4 Reinstall in the correct order

  1. Install the OS prerequisites first: Windows Installer 4.5 and Microsoft Message Queuing if your project uses WinCC flexible RT.
  2. Install WinCC flexible 2005 SP3 (or 2008 SP3 — pick one and stay with it) with elevated rights.
  3. Install STEP 7 V5.5 with the latest Service Pack your license permits.
  4. Install the matching "WinCC flexible ... Integration in STEP 7".
  5. Reboot, then re-authorise via Automation License Manager.

7. Solution 3 — Fix UAC Virtualization of the Catalogue

If the diagnostic step 4d revealed files inside the %USERPROFILE%\AppData\Local\VirtualStore\... path, the integration is reading an empty system catalogue and falling through GetUtahDeviceType(). Two fixes are available.

7.1 Disable UAC virtualization for the engineering account

  1. Start → regedit (elevated).
  2. Navigate to HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers.
  3. Add a string value whose name is the full path to SIMATIC Manager.exe (e.g. C:\Program Files (x86)\Siemens\Automation\SIMATIC Manager\S7WTOPBX.EXE) and whose data is ~ RUNASADMIN.
  4. Add a second value for WinCCflex.exe with the same data.
  5. Close and re-launch SIMATIC Manager with right-click → Run as administrator.

7.2 Move the catalogue out of the virtualised path

mkdir C:\SiemensData
xcopy /E /H /K "%USERPROFILE%\AppData\Local\VirtualStore\Program Files (x86)\Siemens\Automation\WinCC flexible\HmiDevice" "C:\SiemensData\HmiDevice"

:: Redirect the registry pointer
reg add "HKLM\SOFTWARE\Siemens\Automation\WinCC flexible\HmiDevice" /v DevicePath /t REG_SZ /d "C:\SiemensData\HmiDevice" /f

This re-points GetUtahDeviceType() at a writable, non-virtualised directory and resolves the enumeration fault without disabling UAC globally.

8. Solution 4 — DCOM and COM Security Hardening

When the engineering station is governed by a corporate image that pre-tightens DCOM defaults, the SOM service can no longer launch. Repair:

  1. Start → dcomcnfg (elevated).
  2. Component Services → Computers → My Computer → DCOM Config.
  3. Locate entries whose application name contains WinCCflex or SOM.
  4. Right-click → Properties → Security tab. On all three sections (Launch & Activation, Access, Configuration) select Use Default. If "Default" is greyed out, add the local Administrators group and the launching user with full rights.
  5. Switch to the Identity tab and select The interactive user (do not use "Launching user" — STEP 7 launches on behalf of SIMATIC Manager and the chain breaks).
  6. Apply, close dcomcnfg, reboot.

9. Enabling the Integration Diagnostic Log

For incidents that survive the four solutions above, enable the verbose integration log to capture the stack of the GetUtahDeviceType() failure before escalating to Siemens support.

reg add "HKLM\SOFTWARE\Siemens\Automation\WinCC flexible\Trace" /v Level /t REG_DWORD /d 0xFFFF /f
reg add "HKLM\SOFTWARE\Siemens\Automation\WinCC flexible\Trace" /v File /t REG_SZ /d "C:\Temp\WinCCflex_trace.log" /f
reg add "HKLM\SOFTWARE\Siemens\Automation\WinCC flexible\Trace" /v MaxSize /t REG_DWORD /d 0x100000 /f

Reproduce the fault, then attach WinCCflex_trace.log to the support request. The log includes the device-type GUIDs that GetUtahDeviceType() was attempting to enumerate — invaluable when the fault is project-side corruption (trigger #5).

10. Verification Procedure

Run the following sequence end-to-end after each remediation. Each step must pass before the next is attempted.

  1. Standalone launch. Open WinCC flexible directly. Confirm Help → About shows the expected build.
  2. Integration handshake. In SIMATIC Manager, click Options → SIMATIC Manager Add-Ons. "WinCC flexible" must appear in the list with no red X.
  3. Insert a fresh HMI. In a throwaway test project, right-click the project → Insert New Object → SIMATIC HMI Station. The device-selection wizard must open without the SOM error. Cancel out — the goal is to confirm the bridge, not to commit a real station.
  4. Insert into the original project. Open the real .s7p, repeat the insert. The wizard should now display the full catalogue.
  5. Cross-check device GUIDs. If the original project still throws, open it on a second station, export the HMI list via Options → Cross-Reference, and compare device-type GUIDs against the catalogue. Mismatches indicate project-side corruption (trigger #5) and require re-linking the HMI from the canonical source.

11. Prevention Matrix

Practice Benefit
Always launch SIMATIC Manager as administrator Defeats UAC virtualisation of catalogue files.
Keep STEP 7 SP and WinCC flexible Integration SP in lock-step Eliminates version skew that breaks COM registration.
Avoid partial uninstalls — use Control Panel or the Siemens Setup Prevents orphaned CLSIDs and half-registered services.
Maintain a project-side device-type manifest Detects GUID mismatches before insertion fails.
Image engineering stations from a gold master Avoids per-user UAC profile drift.
Back up the Automation License Manager archive before any change Preserves the ability to roll back a clean reinstall.

12. When to Escalate

If the SOM error persists after Solutions 1–4 and the diagnostic log in Section 9 reports a stack inside ObjCreator.cpp referencing a device GUID that is not present in the catalogue, the project itself is the fault. Two further paths remain:

  • Re-create the HMI station on a clean project, then copy the screens, tags, and alarms from a backup of the old project via Project → Migrate/Merge.
  • Open a support request via the Siemens Industry Online Support portal, attaching the integration trace log, the SIMATIC Manager version stamp, the WinCC flexible build number, the Windows 7 build number, and the exact error dialog text (ObjCreator.cpp line 2347 is the canonical identifier for the engineering team).

What does the "Utah-SOM-Error" string actually mean?

"Utah" is the internal development name for WinCC flexible; "SOM" is the Service Object Manager — the COM service that enumerates HMI device types. The error is raised inside the integration component (ObjCreator.cpp) when GetUtahDeviceType() cannot return a valid device catalogue for the project context.

Why does WinCC flexible open fine on its own but fail when launched from STEP 7?

Standalone WinCC flexible does not invoke the SOM service. The fault is in the STEP 7 → WinCC flexible integration bridge, not in the WinCC flexible editor itself; only the integration entry point triggers GetUtahDeviceType().

My STEP 7 is V5.5 SP3 and WinCC flexible is 2005 SP3 — is the version combination correct?

Yes, but the Integration in STEP 7 package must be installed at the matching service-pack level. A frequent fault pattern is a WinCC flexible editor at 2005 SP3 paired with the 2008 SP3 integration (or vice-versa). Match all three: editor SP, STEP 7 SP, integration SP.

Will reinstalling STEP 7 and WinCC flexible fix the error?

Not by itself. The integration component is a separate Windows installer entry; you must explicitly remove and reinstall "WinCC flexible ... Integration in STEP 7" (typically after fully purging the residual registry and folder state described in Section 6) for the COM bridge to be re-registered cleanly.

How do I confirm that UAC virtualization is causing the failure?

After reproducing the fault, check %USERPROFILE%\AppData\Local\VirtualStore\Program Files (x86)\Siemens\Automation\WinCC flexible\HmiDevice\. If files exist there but are absent from the system-wide path, virtualization is active. Either run SIMATIC Manager as administrator or relocate the catalogue to a non-virtualised directory (Section 7).

Where can I download a clean copy of the WinCC flexible integration for STEP 7?

Use the original installation medium that matches your WinCC flexible editor build. The integration is not a stand-alone download in most license agreements — it ships on the same DVD or mounted ISO. If the medium is unavailable, request replacement media through the Siemens Industry Online Support portal with your license ID.

Back to blog