Connection Issues

Connection Issues

This guide covers common connection problems and their solutions.

Eriksson Beam Not Running

Error: ErikssonBeamNotRunningException

Symptoms:

  • "Unable to find an active instance of Eriksson Beam"
  • "Reached maximum attempt count while trying to connect"

Causes and Solutions

1. Eriksson Beam Application Not Started

Solution: Start the Eriksson Beam desktop application before running your code.

// Check if any instances are available
var instances = await ErikssonBeamFinder.GetSupportedErikssonBeamInstances();
if (instances.Length == 0)
{
    Console.WriteLine("Please start Eriksson Beam first.");
    return;
}

2. 10-Minute Idle Timeout Exceeded

Eriksson Beam only listens for API connections for 10 minutes after launch.

Solution: Restart Eriksson Beam and connect within 10 minutes.

catch (ErikssonBeamNotRunningException)
{
    Console.WriteLine("Cannot connect. The 10-minute API window may have expired.");
    Console.WriteLine("Please restart Eriksson Beam and try again.");
}

Important: The 10-minute timer is NOT reset by interacting with the Eriksson Beam UI. Only restarting the application resets it.

3. Wrong Process ID

If using ErikssonBeamClient.AttemptConnection with a specific process ID:

Solution: Verify the process ID is correct.

// Get list of valid process IDs
var validIds = await ErikssonBeamFinder.GetSupportedErikssonBeamInstances();
Console.WriteLine($"Available process IDs: {string.Join(", ", validIds)}");

// Use a valid ID
if (validIds.Length > 0)
{
    args.ProcessID = validIds[0];
    var client = await ErikssonBeamClient.AttemptConnection(args);
}

Connection Timeout

Error: TimeoutException or OperationCanceledException

Symptoms:

  • Connection attempts exhaust without success
  • Operations hang and eventually fail

Causes and Solutions

1. Insufficient Connection Attempts

Solution: Increase MaxAttempts and WaitTimeBetweenAttemptsMs:

var args = new ErikssonBeamConnectionAttemptArgs
{
    LicenseKey = licenseKey,
    MaxAttempts = 20,              // Increased from default 10
    WaitTimeBetweenAttemptsMs = 2000  // Increased from default 1000
};

2. Idle Timeout Too Short

Solution: Increase IdleTimeoutMs for complex operations:

var args = new ErikssonBeamLauncherArgs
{
    LicenseKey = licenseKey,
    ExecutablePath = exePath,
    IdleTimeoutMs = 120000  // 2 minutes instead of default 30 seconds
};

License Validation Failed

Error: ServerErrorException with ResponseCode.LicenseError

Symptoms:

  • "License validation failed"
  • Operations rejected with license error

Causes and Solutions

1. Invalid API License Key

Solution: Verify your API license key is correct:

var licenseKey = Environment.GetEnvironmentVariable("ERIKSSON_LICENSE_KEY");
Console.WriteLine($"License key length: {licenseKey?.Length ?? 0}");
Console.WriteLine($"Starts with: {licenseKey?.Substring(0, 4) ?? "null"}...");

2. API License Key Not Set

Solution: Set the environment variable:

Windows Command Prompt:

setx ERIKSSON_LICENSE_KEY "YOUR-LICENSE-KEY-HERE"

PowerShell:

[Environment]::SetEnvironmentVariable("ERIKSSON_LICENSE_KEY", "YOUR-KEY", "User")

3. Expired License

Solution: Contact Eriksson Software for license renewal.

4. Network Issues (First Validation)

The first validation requires network access to Eriksson Software’s license server.

Solution: Ensure internet connectivity for initial validation. Subsequent validations are cached for 7 days.

Version Mismatch

Error: ServerErrorException with ResponseCode.VersionError

Symptoms:

  • "Version mismatch"
  • API rejected due to incompatibility

Causes and Solutions

1. API DLL Version Doesn’t Match Eriksson Beam

Solution: Ensure you’re using the API package version that matches your Eriksson Beam installation.

// Check for supported instances (filters by version)
var instances = await ErikssonBeamFinder.GetSupportedErikssonBeamInstances();

// If empty, version may be incompatible
if (instances.Length == 0)
{
    Console.WriteLine("No compatible Eriksson Beam instances found.");
    Console.WriteLine("Ensure your API version matches your Eriksson Beam installation.");
}

Named Pipes Issues

Error: ErikssonBeamConnectionException

Symptoms:

  • "Failed to connect to named pipe"
  • Connection immediately fails

Causes and Solutions

1. Permissions Issue

Named pipes may fail if running with different permission levels.

Solution: Run both your application and Eriksson Beam with the same privilege level.

2. Security Software Blocking

Antivirus or firewall may block named pipe communication.

Solution: Add exceptions for:

  • Your application executable
  • ErikssonBeam.exe
  • Named pipe communication (local IPC)

Diagnostic Steps

1. Verify Eriksson Beam is Detectable

Console.WriteLine("Checking for Eriksson Beam instances...");

var instances = await ErikssonBeamFinder.GetSupportedErikssonBeamInstances();

if (instances.Length == 0)
{
    Console.WriteLine("No instances found.");
    Console.WriteLine("Ensure Eriksson Beam is running and was started within 10 minutes.");
}
else
{
    Console.WriteLine($"Found {instances.Length} instance(s):");
    foreach (var pid in instances)
    {
        Console.WriteLine($"  Process ID: {pid}");
    }
}

2. Test Connection with Verbose Logging

using Microsoft.Extensions.Logging;

var loggerFactory = LoggerFactory.Create(builder =>
{
    builder.AddConsole().SetMinimumLevel(LogLevel.Trace);
});
var logger = loggerFactory.CreateLogger<Program>();

var args = new ErikssonBeamConnectionAttemptArgs
{
    LicenseKey = licenseKey,
    MaxAttempts = 5,
    WaitTimeBetweenAttemptsMs = 2000
};

try
{
    var client = await ErikssonBeamFinder.GetFirstSupportedBeamClient(args, logger);
    Console.WriteLine("Connection successful!");
    client.Dispose();
}
catch (Exception ex)
{
    Console.WriteLine($"Connection failed: {ex.GetType().Name}");
    Console.WriteLine($"Message: {ex.Message}");
}

See Also

>