How to Make an Engineering Support Request for IronPrint

We appreciate you taking the time to help us improve IronPrint and resolve any issues you may be experiencing. The vast majority of our features and updates are driven by customer requests, and we consider software development to be a two-way conversation between our customers and our developers.

To provide effective support, our engineering team needs to efficiently replicate issues and create regression tests. Most issues we encounter are platform or runtime-specific, so we require very concise information.

Please send all support requests to support@ironsoftware.com.

A Concise, Clear Description of the Issue

A good technical report must include enough information to reproduce the issue. Imagine you are reporting the issue to a colleague or posting it on Stack Overflow.

A bug report should contain:

  • A clear description of the symptoms experienced and any ideas you may have regarding their cause.
  • Log Files (see below)
  • Environment: IronPrint Version, OS, and .NET runtime version, (exact cloud environment if applicable)

Please include as many of the following as possible, to prioritize your ticket:

  • An example project that fully reproduces the issue
  • A Stack Overflow-style code snippet (please do not screenshot code)
  • Screenshots of symptoms/exceptions
  • Exception message text (Exception + Inner Exception)
  • The specific debugging point where the process stops working or exits in the code
  • Input parameters and assets: Image and PDF

How to Attach an Example Project

An example project that accurately replicates an entire issue in isolation enables our engineers to simply and swiftly recognize and understand an issue.

This is the gold standard for reproducibility and will generally expedite a support request to the top of the stack.

Our preferred format is a zipped, simple, standalone .NET console or web app project:

  • Please enable full sharing when sending a Google Drive or Dropbox link.
  • Bin folder is not required as its inclusion bloats the zip file.

Please Also Include:

  • Input files (working and non-working), including PDFs and images.
// Example of how to capture exceptions and log them
using System;

namespace IronPrintSupportRequest
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // Simulate a part of your process where an exception might occur
                ProcessIronPrintJob();
            }
            catch (Exception ex)
            {
                // Log the exception details
                Console.WriteLine("An error occurred:");
                Console.WriteLine($"Message: {ex.Message}");
                Console.WriteLine($"Stack Trace: {ex.StackTrace}");

                // If there's an inner exception, log that as well
                if (ex.InnerException != null)
                {
                    Console.WriteLine("Inner Exception:");
                    Console.WriteLine($"Message: {ex.InnerException.Message}");
                    Console.WriteLine($"Stack Trace: {ex.InnerException.StackTrace}");
                }
            }
        }

        static void ProcessIronPrintJob()
        {
            // Simulate a function that may throw an exception
            throw new InvalidOperationException("Simulated exception for demonstration purposes.");
        }
    }
}
// Example of how to capture exceptions and log them
using System;

namespace IronPrintSupportRequest
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                // Simulate a part of your process where an exception might occur
                ProcessIronPrintJob();
            }
            catch (Exception ex)
            {
                // Log the exception details
                Console.WriteLine("An error occurred:");
                Console.WriteLine($"Message: {ex.Message}");
                Console.WriteLine($"Stack Trace: {ex.StackTrace}");

                // If there's an inner exception, log that as well
                if (ex.InnerException != null)
                {
                    Console.WriteLine("Inner Exception:");
                    Console.WriteLine($"Message: {ex.InnerException.Message}");
                    Console.WriteLine($"Stack Trace: {ex.InnerException.StackTrace}");
                }
            }
        }

        static void ProcessIronPrintJob()
        {
            // Simulate a function that may throw an exception
            throw new InvalidOperationException("Simulated exception for demonstration purposes.");
        }
    }
}
' Example of how to capture exceptions and log them
Imports System

Namespace IronPrintSupportRequest
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			Try
				' Simulate a part of your process where an exception might occur
				ProcessIronPrintJob()
			Catch ex As Exception
				' Log the exception details
				Console.WriteLine("An error occurred:")
				Console.WriteLine($"Message: {ex.Message}")
				Console.WriteLine($"Stack Trace: {ex.StackTrace}")

				' If there's an inner exception, log that as well
				If ex.InnerException IsNot Nothing Then
					Console.WriteLine("Inner Exception:")
					Console.WriteLine($"Message: {ex.InnerException.Message}")
					Console.WriteLine($"Stack Trace: {ex.InnerException.StackTrace}")
				End If
			End Try
		End Sub

		Private Shared Sub ProcessIronPrintJob()
			' Simulate a function that may throw an exception
			Throw New InvalidOperationException("Simulated exception for demonstration purposes.")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel
  • This code block illustrates how to handle exceptions in a .NET application.
  • It logs the main exception as well as any inner exceptions to the console, which can be useful for debugging purposes.