diff --git a/Importers/Rhino/Speckle.Importers.JobProcessor/Program.cs b/Importers/Rhino/Speckle.Importers.JobProcessor/Program.cs index c0faf9d40..ab3ee2618 100644 --- a/Importers/Rhino/Speckle.Importers.JobProcessor/Program.cs +++ b/Importers/Rhino/Speckle.Importers.JobProcessor/Program.cs @@ -10,16 +10,27 @@ namespace Speckle.Importers.JobProcessor; public static class Program { - public static async Task Main(string[] args) + public static async Task Main(string[] args) { // Dapper doesn't understand how to handle JSON deserialization, so we need to tell it what types can be deserialzied SqlMapper.AddTypeHandler(new JsonHandler()); var host = ConfigureAppHost(args); - ConfigureTopLevelLogs(host.Services.GetRequiredService>()); + var backgroundServiceTasks = host + .Services.GetServices() + .OfType() + .Select(s => s.ExecuteTask); await host.RunAsync(); + + if (backgroundServiceTasks.Any(t => t?.IsFaulted == true)) + { + //https://github.com/dotnet/runtime/issues/67146 + return -1; + } + + return 0; } private static IHost ConfigureAppHost(string[] args) diff --git a/Importers/Rhino/Speckle.Importers.Rhino/Internal/ImporterInstance.cs b/Importers/Rhino/Speckle.Importers.Rhino/Internal/ImporterInstance.cs index 374964b9e..872631db4 100644 --- a/Importers/Rhino/Speckle.Importers.Rhino/Internal/ImporterInstance.cs +++ b/Importers/Rhino/Speckle.Importers.Rhino/Internal/ImporterInstance.cs @@ -52,6 +52,8 @@ internal sealed class ImporterInstance(Sender sender, ILogger try { using var config = GetConfig(Path.GetExtension(args.FilePath)); + logger.LogInformation("Opening file {FilePath}", args.FilePath); + _rhinoDoc = config.OpenInHeadlessDocument(args.FilePath); RhinoDoc.ActiveDoc = _rhinoDoc;