Windows Application Log · Event 33
Event 33: A program cannot find a runtime library it needs
Windows tried to work out which version of a shared library a program wanted, and could not find a matching one installed. The program usually fails to start at all. The fix is almost always installing the right Visual C++ redistributable.
Also written as SideBySide 33sxs error event 33
- How oftenFires regularly
- Vendor calls itError
- LogApplication
- SourceSideBySide
The fields that decide it
Everything else in the log line is context.
- Dependent Assembly
- The library the program wanted, with the version it was built against.
-
Microsoft.VC80.CRTVisual C++ 2005 runtime. -
Microsoft.VC90.CRTVisual C++ 2008 runtime — by far the most common one to be missing. -
Microsoft.Windows.Common-ControlsThe visual styles library. Usually a manifest bug in the application, not a missing install. -
Microsoft.VC80.MFC or Microsoft.VC90.MFCThe MFC libraries, shipped in the same redistributables. - Error in manifest or policy file
- Which manifest Windows was reading when it gave up. A path ending in the program's own .exe.manifest points at the application; a path under WinSxS points at the installed component.
- processorArchitecture
- x86 or amd64. A 32-bit program needs the 32-bit redistributable even on a 64-bit machine, and installing only the x64 package is the single most common reason a 'fix' does not work.
- publicKeyToken
- Identifies who signed the assembly. Microsoft's runtimes use a small set of well-known tokens; an unfamiliar one means a third-party side-by-side component.
- version
- The exact build the program was linked against. Side-by-side matching is strict — a newer redistributable does not automatically satisfy an older version request unless a publisher policy redirects it.
Common questions
How do I fix 'Activation context generation failed'?
Read the Dependent Assembly line. If it names Microsoft.VC80.CRT, Microsoft.VC90.CRT or similar, install the matching Visual C++ redistributable from Microsoft — and match the architecture, because a 32-bit program needs the x86 package even on 64-bit Windows. If it names something else, reinstalling the program that failed is usually quicker than chasing the component.
What does 'side-by-side' actually mean?
It is the Windows mechanism that lets several versions of the same shared library exist at once, so an old program and a new one can each get the version they were built against. The component store lives in C:\Windows\WinSxS. Event 33 means the lookup ran and found no version that satisfied the request.
I installed the Visual C++ redistributable and still get Event 33.
Two usual reasons. First, architecture: installing the x64 package does nothing for a 32-bit program. Second, version: side-by-side matching is exact, so a program built against the 2008 runtime is not satisfied by the 2015-2022 package. Install the specific year named in the Dependent Assembly line.
Is Event 33 a virus?
No. It is a dependency resolution failure and it happens constantly with older or badly packaged software. It becomes worth a second look only if the program named is one you did not install, in which case the interesting question is where that program came from rather than what this event says.
Read next
- The equivalent of Event 1000: An application crashed When the missing component is found but faulty rather than absent, you get a crash instead of this.
- The equivalent of Event 1026: A .NET program threw an exception nobody caught The .NET equivalent, where a missing dependency surfaces as a FileNotFoundException.
- Read alongside Event 7000: A service failed to start A service that fails to start for this reason logs a Service Control Manager failure alongside it.
- Related Event 455: An internal Windows database could not open its log file Another Application-log error that looks alarming and is almost always harmless.
Vendor documentation
Last reviewed 6 September 2026