Resolving WinCC Advanced V15 Compile Error: System.ArgumentNullException at 100% Compile
The "Compilation failed. Please contact SIEMENS customer support." error in TIA Portal V15 with WinCC Advanced (PC RT and Comfort Panels) is one of the most persistent issues reported by integrators migrating from V14 or running fully patched TIA V15 systems. The error fires at exactly 100% of the compiler pass, after which the runtime image is unusable. This reference consolidates the verified field fixes, the precise root cause taxonomy, the official system requirements, and the diagnostic workflow needed to clear the error without losing project state.
System.ArgumentNullException: Value cannot be null. Parameter name: name inside Siemens.Automation.ObjectFrame -> GetAttribute on the Hmi.ES2RT.CompileThread. The error message is intentionally generic; root cause must be derived from project topology and host OS.1. Problem Identification and Symptom Set
The failure presents with the following reproducible signature:
| Field | Observed Value |
|---|---|
| Error text | Compilation failed. Please contact SIEMENS customer support. |
| Exception type | System.ArgumentNullException |
| Exception message | Value cannot be null. Parameter name: name |
| Source assembly | Siemens.Automation.ObjectFrame |
| Method token | 100671181 |
| Method name | GetAttribute |
| Application domain | Siemens.Automation.Portal.exe |
| Offending thread |
Hmi.ES2RT.CompileThread (TID 4644 in reference case) |
| Inner exception | Missing |
| Implicit exception | True |
| Compile progress at failure | 100% (passes all earlier validation gates) |
| Failure surface | PC RT (WinCC Runtime Advanced) and Comfort Panel targets; KTP/HMI Basic panels compile cleanly in the same portal |
Symptom variations that have been observed in the field:
- Compile hangs at 95% for several seconds before timing out, particularly on projects with high tag counts (>5,000 tags) or screens containing many graphical objects.
- Project compiles successfully the first time, then begins failing after a small incremental change (tag add, screen edit, or HMI connection reconfiguration).
- Same project compiles on one workstation but fails on another, with identical TIA installation (this is the OS-version indicator, see Section 4).
- Siemens error reporting dialog appears only after TIA Portal itself is closed; the dialog is suppressed while the IDE is running.
2. Engineering Environment — What is in the Failure Surface
| Component | Reported Version |
|---|---|
| Host OS | Windows 10 Pro x64, build 1803 (April 2018 Update) — known incompatible |
| Host OS (working) | Windows 7 Pro x64 SP1, Windows 10 LTSB/LTSC 2015 and 2016 |
| TIA Portal | V15.0, V15.1 (Update 3 fully patched) |
| Step 7 Basic | Installed alongside |
| Step 7 Safety Basic | Installed alongside |
| StartDrive | Installed (not used by failing WinCC compile) |
| WinCC Advanced | V15 / V15.1 (RT Advanced for PC) |
| Hypervisor risk | V15 is unstable inside any VM; V15 in a VM is not supported for production HMI compile |
3. Root Cause Taxonomy
The single error message masks at least four distinct root causes. Identify the dominant cause first — fixes are not interchangeable.
3.1 Cause A — Windows 10 Build 1803 / OS Compatibility
The host OS is not on the Siemens-supported operating system list for TIA V15 / V15.1. Microsoft Windows 10 build 1803 (April 2018 Update) introduced changes to .NET Framework assembly resolution and to the COM object activation model that Siemens.Automation.ObjectFrame consumes. The GetAttribute call inside the HMI ES2RT compile thread dereferences a member that has been nulled by the host runtime. This cause produces 100% failure across all projects on the host, including brand-new minimal dummy HMI PC stations.
3.2 Cause B — IM (Identity Mirror) Cache Corruption
The TIA Portal project folder contains an IM subfolder that mirrors the project identity graph. After upgrade from V14, after a long running session, or after a forced shutdown, this mirror can hold attributes that no longer match the live project tree. When the ES2RT compiler resolves the connection target, GetAttribute returns null and the parameter check throws. Re-validating the project without rebuilding the IM graph is insufficient; the mirror must be physically deleted and the compiler allowed to reconstruct it.
3.3 Cause C — HMI Connection Attribute Drift
Connections between the WinCC Advanced RT and the PLC (S7-1200/1500/300/400) carry attribute bags (time-sync role, partner slot, IO address binding, partner endpoint). After editing tags, copying screens, or upgrading project structure, the connection's internal attribute can become null in a way that does not surface in the device editor. The compiler resolves the connection late in the build, after most user errors are masked, and the null attribute is observed at 100%.
3.4 Cause D — WinCC RT Version Marker Mismatch
When the WinCC RT in the project tree is upgraded to a sub-version (for example 15.0 -> 15.1) the version marker on the RT object is updated before the dependency graph is rebuilt. On next compile, GetAttribute cannot resolve a versioned attribute. Rolling the RT back to the prior sub-version forces a re-materialization of the version graph, after which the upgrade can be reapplied cleanly.
4. Solution Matrix — Decision Tree
| Try | Action | Targets Cause | Effort | Data Loss Risk |
|---|---|---|---|---|
| 1 | IM folder delete + rebuild | B, C | 2 min | None (rebuild regenerates IM) |
| 2 | Run TIA Portal as Administrator | B, OS ACL | 1 min | None |
| 3 | Toggle HMI Time-Sync from Master to None, rebuild, restore | C | 5 min | None (re-toggling restores) |
| 4 | Remove HMI connection, compile (will produce connection error), re-add connection, rebuild all | C | 10 min | None |
| 5 | Change WinCC RT version (downgrade then re-upgrade), compile after each step | D | 10 min | None |
| 6 | Validate host OS against TIA V15 system requirements | A | 15 min | None |
| 7 | Migrate host to Windows 7 Pro x64 SP1, Windows 10 LTSB 2015/2016, or supported equivalent | A | Several hours | Host OS only — keep project archive |
5. Solution 1 — IM Folder Reset and Full Rebuild
The IM folder is the cached mirror of the project object graph. TIA Portal reads it before every compile to resolve cross-references between HMI tags, PLC tags, and connections. A stale entry is the most common cause of ArgumentNullException at the 100% mark.
5.1 Procedure
- Close TIA Portal V15 completely. Verify
Siemens.Automation.Portal.exeis not present in Task Manager. - Open the project folder in Windows Explorer. The path is typically
%USERPROFILE%\Documents\Automation\Projects\<ProjectName>\. - Delete the
IMsubfolder in its entirety. Do not delete any other folder. - Re-launch TIA Portal V15 and open the project.
- In the project tree, right-click the HMI device or PC RT station, choose Compile > Software (rebuild all). Do not use a normal compile — only rebuild all forces the IM graph to reconstruct from the project XML.
- Watch the progress bar. If the error recurs at 100%, proceed to Solution 2.
5.2 What you should observe
The compile time will increase on the first rebuild because the IM graph is regenerating. A successful run produces a populated IM folder on the next save. The compiled RT file appears in the project's HMI output directory and the simulation can be launched.
6. Solution 2 — Run TIA Portal with Administrator Privileges
On hosts where the user profile was not created with full ACLs, the HMI ES2RT compile thread cannot read all attributes it needs. The GetAttribute call returns null and the project fails to compile even when the project itself is clean.
- Close TIA Portal.
- Right-click the TIA Portal V15 shortcut and choose Run as administrator.
- Open the project and trigger Compile > Software (rebuild all).
If the compile succeeds under elevated privileges, configure the shortcut or the executable to always launch elevated via the Compatibility tab. This is a per-host fix, not a per-project fix.
7. Solution 3 — Toggle HMI Time Synchronization Attribute
The HMI Time-Sync role is implemented as an attribute on the HMI-to-PLC connection. The attribute is read by the ES2RT compiler and, when its internal state is inconsistent, surfaces as a null parameter. Toggling the role forces the compiler to re-resolve and re-materialize the attribute bag.
- In the project tree, expand HMI project > Connections.
- Select the connection to the controller (for example,
HMI_Connection_1). - In the Properties pane, locate Time synchronization. Note the current setting.
- Change the setting to a different value (for example from Master to None, or from Slave to None).
- Compile > Software (rebuild all). The compile may now succeed with the changed setting, or it may fail with a different error — both outcomes indicate the connection attribute graph is the cause.
- Restore the original time-sync setting.
- Compile > Software (rebuild all). A clean compile at this step confirms the connection attribute graph is now consistent.
8. Solution 4 — Remove and Re-add the HMI Connection
This is the stronger version of Solution 3. It rebuilds the connection object from scratch, eliminating any null or stale attribute that toggling could not clear.
- Close TIA Portal V15.
- Open the project and locate HMI project > Connections.
- Right-click the HMI connection to the PLC and select Delete. Confirm the deletion.
- Compile > Software. The compile will fail with a different error (connection not found or no partner defined) — this is expected and confirms the compiler is now reaching the connection resolution stage without the null attribute.
- Right-click Connections and choose Add new connection. Re-enter the original partner, slot, and IO configuration exactly as it was.
- Compile > Software (rebuild all). A clean compile at this step is the success criterion.
9. Solution 5 — WinCC RT Version Re-marking
This addresses Cause D, the version marker drift. The procedure is to roll the RT version back one sub-version, compile, and then upgrade again.
- Open the project in TIA Portal V15.
- In the project tree, right-click the WinCC RT PC station and select Change device / Change version (the exact menu label varies by patch level).
- Choose the previous sub-version of the WinCC RT (for example 15.0 if your project is at 15.1).
- Compile > Software. The compile should now succeed.
- Re-open Change device / Change version and select the target sub-version (for example 15.1).
- Compile > Software (rebuild all). The compile should now succeed at the target version.
10. Solution 6 — Host OS Compliance with TIA V15 System Requirements
This is the definitive fix for Cause A. TIA Portal V15 / V15.1 has a published compatibility matrix with the host operating system. The relevant release notes for WinCC V15 / TIA V15 list Windows 7 SP1 (64-bit) and Windows 10 build 1607 (Anniversary Update) and 1703 (Creators Update) as supported. Windows 10 build 1803 (April 2018 Update) is not supported for the WinCC HMI compile path, even though the PLC programming path may continue to function.
Engineering workarounds for hosts that cannot be downgraded:
- Use Windows 10 LTSB/LTSC editions (2015 or 2016), which Microsoft exempts from feature updates and which can be held at a build that TIA V15 supports.
- Deploy TIA V15 inside a Windows 7 Pro x64 SP1 VM. V15 inside a VM is not officially supported for production, but for compilation purposes on a non-real-time host it is more stable than a Windows 10 1803 host.
- Block the Windows 10 feature update that takes the host past 1703 using Group Policy or Windows Update for Business. Note: deferrals only delay; the update eventually installs.
To verify the host build:
- Press
Win + R, typewinver, press Enter. - Read the version and OS build (for example Windows 10 Version 1803 (OS Build 17134.x)).
- Cross-reference against the TIA V15 / V15.1 system requirements for the WinCC components in use.
The official system requirements for the WinCC family in the TIA Portal are maintained on the Siemens Industry Online Support portal; always verify against the Siemens Industry Online Support release notes for the specific V15.x service pack you are running.
11. Diagnostic Workflow — Minimal Project Reproduction
Use the following test to isolate whether the cause is environmental (host) or project-specific:
- Create a new TIA Portal V15 project.
- Add a single HMI PC station (WinCC Runtime Advanced) with no tags, no screens beyond the default root screen, and no HMI connection.
- Compile > Software (rebuild all).
Result interpretation:
| Compile Result | Implication |
|---|---|
| Success | Cause is in the original project (tag count, screen complexity, HMI connection attribute drift). Use Solution 3, 4, or 5. |
| Failure with same ArgumentNullException | Cause is environmental (host OS, .NET runtime, missing privilege). Use Solution 2, 6, or 7. |
| Failure with a different error | Use the new error code as the diagnostic — this is not the same fault class. |
12. Verification — Confirming the Fix
After applying any of Solutions 1 through 5, verify by running the following sequence:
- Close the project in TIA Portal.
- Re-open the project.
- Compile > Software (rebuild all) on the HMI device / PC RT station.
- Confirm a green check in the Inspector window and the absence of the
Compilation failedmessage. - Launch the WinCC Runtime Advanced simulator (RT) to validate that the generated runtime starts without missing-tag or screen-load errors.
- Re-launch the Siemens error reporting dialog (Help > Customer Support > Show error report) and confirm no new entries with the same
MethodToken 100671181/GetAttributesignature have been added.
For OS-level remediation (Solution 6/7), verify by repeating the minimal project reproduction from Section 11. A successful compile of the minimal project after the host change is the proof that the cause was environmental.
13. Edge Cases and Caveats from Field Practice
-
Compile hangs at 95% with high tag counts. Symptom of the same fault class on projects with >5,000 tags or screens containing many objects. The
GetAttributenull surfaces as a timeout rather than an exception. The IM-folder reset (Solution 1) and the HMI-connection cycle (Solutions 3, 4) have both been observed to clear this behavior. -
IDE crash when moving display fields on heavy screens. Same fault class. The
Siemens.Automation.ObjectFramecall path is also exercised by the live editor; reducing screen object count below the threshold at which the crash occurs is the immediate workaround, with Solutions 1, 3, 4 as the proper fix. - Portal crashing on TIA close after the compile error. The crash report dialog that appears after TIA Portal is closed is a side effect of the unhandled exception in the ES2RT compile thread. The crash itself does not indicate additional damage; the project is recoverable.
- V15 inside a VM. Multiple integrators have reported V15 being unstable in any virtualization layer (Hyper-V, VMware Workstation, VirtualBox). This is independent of the Windows 10 1803 issue. If the host is a VM, treat V15 inside the VM as the unsupported case and migrate to a physical host for production HMI work.
- Compile succeeds, then breaks on the next session. This is a stale IM graph. Run Solution 1 (IM folder delete + rebuild all) and avoid incremental compiles for the rest of the session.
- Fail-safe PLC code compiles on Windows 10 1803 but HMI does not. The PLC programming and the WinCC HMI compile paths are independent in TIA V15. Success on one path does not predict success on the other. Treat the supported-OS check as HMI-specific.
14. Prevention — Engineering Practices
- Lock the host OS to a build on the TIA V15 / V15.1 supported list and prevent in-place upgrades. LTSB/LTSC editions are the recommended base.
- Avoid incremental HMI edits late in the project lifecycle on high-tag-count projects; batch the edits and run rebuild all rather than compile.
- After every TIA Portal service pack or update, perform the minimal project reproduction from Section 11 on a test project before touching the production project.
- Archive the project after every successful compile. The IM folder is regenerable; the project XML is the source of truth.
- Maintain a list of HMI connections, their time-sync roles, and their partner endpoints in a project-side document. A quick reference speeds up Solution 4 when the fault recurs.
- When upgrading from V14 to V15, run the V15 upgrade tool on a copy of the project first, validate the compile, and only then promote the upgraded copy over the original.
15. Standards and Documentation References
For deeper diagnosis and the most current compatibility matrix, consult the official Siemens documentation. The WinCC compile and load overview for Basic Panels, Comfort Panels, and RT Advanced in TIA Portal is the canonical reference for compiler-stage error semantics: Overview of compiling and loading projects - WinCC. The system requirements for TIA Portal V15 / V15.1 and the WinCC components are maintained on the Siemens Industry Online Support portal at support.industry.siemens.com. Always validate the host OS build against the release notes for the specific service pack in use.
16. Frequently Asked Questions
What is the exact text of the WinCC Advanced V15 compile error?
The error text is Compilation failed. Please contact SIEMENS customer support. The underlying exception in the report bundle is System.ArgumentNullException: Value cannot be null. Parameter name: name, raised inside Siemens.Automation.ObjectFrame method GetAttribute on the Hmi.ES2RT.CompileThread.
Why does the error appear only when the compile reaches 100%?
The ES2RT compile thread resolves HMI connection attributes as a late-stage pass, after the bulk of the HMI image is generated. The null attribute is only observed when the connection attribute graph is walked, which is the final step. Earlier stages of the compile (tag validation, screen generation, script compilation) all pass cleanly, which is why the failure looks like a sudden crash rather than a gradual error build-up.
Does Windows 10 version 1803 work with TIA Portal V15?
No. Windows 10 build 1803 (April 2018 Update) is not on the supported operating system list for the WinCC HMI compile path of TIA Portal V15 / V15.1. The PLC programming path may continue to work, including fail-safe code, but the HMI compile will fail with the ArgumentNullException signature. Use Windows 7 SP1 x64, Windows 10 LTSB 2015, or Windows 10 LTSB 2016 as the host OS for HMI compile on TIA V15.
Is deleting the IM folder safe?
Yes. The IM (Identity Mirror) folder is a regenerable cache of the project object graph. TIA Portal reconstructs it on the next rebuild all pass. It is the standard recovery step for IM-graph inconsistencies and does not affect the project source (the XML/AP files in the parent project folder).
Can I run TIA Portal V15 in a Windows virtual machine?
Siemens does not officially support TIA Portal V15 in a virtual machine for production HMI work, and field experience shows V15 is unstable in any hypervisor regardless of the host OS. For production HMI compile, use a physical host on a supported Windows build. If a VM must be used, Windows 7 Pro x64 SP1 as the guest OS on a stable hypervisor is the most commonly workable combination for compile-only workflows.
Will the same error appear in TIA Portal V16 or V17?
The specific ArgumentNullException signature with MethodToken 100671181 has been reported primarily on V15 and V15.1. Newer TIA Portal versions carry their own compatibility matrices and their own error signatures. Always validate the host OS and service pack level against the system requirements for the TIA version actually in use, and reproduce the failure on a minimal dummy project before assuming the same root cause applies.