Skip to content

Troubleshooting

Work through this page when the API fails to load, activate, open a project, or return results. It applies to SIDRA Intersection 11.0.3 and the samples on this site.

First checks

  1. Is your process 64-bit? The single most common failure. See below.
  2. Is SIDRA Intersection 11 installed and licensed on this machine? The API ships with the product and drives the installed runtime.
  3. Is the .NET 8 runtime present? The installer satisfies this.
  4. Does the .sipx path you pass to OpenProject exist, and is it a project saved by SIDRA Intersection?

The host process must be 64-bit

The API is net8.0-windows and x64-only. It cannot be loaded into or activated from a 32-bit process, whatever the language.

Language Requirement
C# / VB.NET Set Platform target to x64. Do not rely on AnyCPU: it lets the host decide the bitness at load time, and a 32-bit host (or a "Prefer 32-bit" setting) fails to load the API. The C# sample project file pins <PlatformTarget>x64</PlatformTarget>.
Python Use a 64-bit Python interpreter. A 32-bit interpreter cannot load the assembly.
PowerShell Use a 64-bit host. A 32-bit host fails to activate the COM class with 0x80040154 REGDB_E_CLASSNOTREG. powershell.exe and pwsh are 64-bit on 64-bit Windows unless you launched the (x86) variant.
C++ Build the x64 configuration. A 32-bit build fails at CoCreateInstance.

To confirm at run time, read ISIAPI.IntPtrSize: it reports the host pointer size in bytes and should be 8 in a 64-bit process.

.NET 8 runtime requirements

The API targets .NET 8 on Windows. The SIDRA Intersection installer puts the required runtime on the machine; nothing extra is needed on a machine with the product installed. If the runtime was removed or you are diagnosing a bare machine, install the .NET 8 Desktop Runtime (x64). C# and VB.NET host projects must target net8.0-windows.

COM registration and activation failures

C++ and PowerShell activate the API through COM. The SIDRA Intersection installer registers the type library (SIDRASolutions.SI.API.tlb) and the .NET COM host (SIDRASolutions.SI.API.comhost.dll).

0x80040154 REGDB_E_CLASSNOTREG (or "SIDRA Intersection COM API is not registered") means one of:

  • The host process is 32-bit (most common; see above). The registration is x64-only, so a 32-bit host cannot see it.
  • SIDRA Intersection 11 is not installed on this machine.
  • The registration is damaged. Reinstall or repair SIDRA Intersection to restore it.

The SIDRA Intersection runtime requires a single-threaded apartment: initialise COM with CoInitialize (STA, as the C++ sample does) and mark .NET entry points [STAThread] (as the C# sample does).

Missing API or late-binding assemblies

C# / VB.NET: the project references the late-binding wrapper LB_SI11API.dll, which must sit next to your executable together with its LB_SI11API.deps.json. A FileNotFoundException for LB_SI11API at startup means the DLL (or the deps file) was not copied or the <HintPath> is wrong. The wrapper then locates and loads the installed SIDRA Intersection runtime, so the product must be installed even though you never reference its folder directly.

Python: the API assembly is loaded by full path from the install folder, which holds SIDRASolutions.SI.API.dll alongside its SIDRASolutions.SI.API.runtimeconfig.json. Read the folder from the registry value HKLM\SOFTWARE\SIDRA SOLUTIONS\SIDRA INTERSECTION 11\InstallLocation (as the Python sample does) rather than hard-coding a path. If that key is missing, SIDRA Intersection 11 is not installed.

Python.NET fails to initialize

Python.NET 3.x can host either .NET Framework or CoreCLR, and on Windows it may default to .NET Framework. The API needs CoreCLR (.NET 8), so:

  • Call set_runtime(get_coreclr(runtime_config=...)) with the API's own SIDRASolutions.SI.API.runtimeconfig.json before the first import clr. Once clr has been imported the runtime choice is fixed for the process; restart the interpreter if you got it wrong.
  • Errors about .NET Framework versions, or clr.AddReference failing on a valid path, usually mean the wrong runtime was selected.
  • The Python sample shows the full working sequence.

Licensing failures

ISIAPI.IsLicensed reports whether the installed SIDRA Intersection is licensed. Check it after creating the API object and before relying on results. If it returns false, resolve licensing in SIDRA Intersection itself (run the product and confirm it is activated) before using the API.

Project file (.sipx) problems

OpenProject returns false on failure; read ISIAPI.LastErrorMessage for the reason. Common causes:

  • The path does not exist or the process cannot read it (network shares and permissions included). Check the exact string you passed.
  • The file is not a .sipx project. SIDRA Intersection 11 projects use the .sipx extension. Projects from older product versions must be opened and saved in SIDRA Intersection first so they are in the current format.

  • The file is locked or already open, for example in the SIDRA Intersection application. Close it there first.

Where the API reports errors

  • Most operations (OpenProject, SaveProject, Process, ...) return a boolean: true on success and false on failure. They do not throw on ordinary failures, so check every return value.
  • After a false, ISIAPI.LastErrorMessage holds the failure text.
  • In C++ every member additionally returns an HRESULT; a failed HRESULT signals a COM-level problem (activation, marshalling) rather than a SIDRA-level one.

Diagnostics to collect before requesting support

Collect these before reporting a problem; they answer the first round of questions in one pass:

  1. SIDRA Intersection version (Help > About), and that the product runs and is licensed on the same machine.
  2. The documentation version you followed (the version selector in the top bar, e.g. 11.0.3).
  3. Language and runtime: .NET SDK version, Python and pythonnet versions, PowerShell host and version, or Visual Studio toolset.
  4. Process bitness (the IntPtrSize check above).
  5. The exact error: full exception text or HRESULT, plus LastErrorMessage where available.
  6. The smallest snippet that reproduces the problem, ideally one of the samples from this site with only the project path changed.
  7. Whether the same .sipx opens normally in SIDRA Intersection itself.

Versioned documentation and support

This documentation is versioned with the API. Each release is a full snapshot under /<version>/, and the version selector in the top bar switches between them.

  • Match the docs to your installation. If you run SIDRA Intersection 11.0.3, read the 11.0.3 docs.
  • latest moves. The /latest/ alias always points at the newest release, so bookmark a specific version for long-lived references.
  • Corrections are republished in place. Documentation fixes for an existing release update that version's snapshot without a new version number.
  • API contract changes never appear silently. A changed or added member means a new API release with its own documentation version and release notes entry.

To report a problem with the API or with this documentation, contact SIDRA Solutions through your existing product support channel, and include the diagnostics listed above plus the documentation URL (with its version) for anything that looks wrong on this site.