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¶
- Is your process 64-bit? The single most common failure. See below.
- Is SIDRA Intersection 11 installed and licensed on this machine? The API ships with the product and drives the installed runtime.
- Is the .NET 8 runtime present? The installer satisfies this.
- Does the
.sipxpath you pass toOpenProjectexist, 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 ownSIDRASolutions.SI.API.runtimeconfig.jsonbefore the firstimport clr. Onceclrhas 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.AddReferencefailing 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
.sipxproject. SIDRA Intersection 11 projects use the.sipxextension. 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:trueon success andfalseon failure. They do not throw on ordinary failures, so check every return value. - After a
false,ISIAPI.LastErrorMessageholds the failure text. - In C++ every member additionally returns an
HRESULT; a failedHRESULTsignals 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:
- SIDRA Intersection version (Help > About), and that the product runs and is licensed on the same machine.
- The documentation version you followed (the version selector in the
top bar, e.g.
11.0.3). - Language and runtime: .NET SDK version, Python and
pythonnetversions, PowerShell host and version, or Visual Studio toolset. - Process bitness (the
IntPtrSizecheck above). - The exact error: full exception text or
HRESULT, plusLastErrorMessagewhere available. - The smallest snippet that reproduces the problem, ideally one of the samples from this site with only the project path changed.
- Whether the same
.sipxopens 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.3docs. latestmoves. 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.