Current Releases

0.79.1

Released 03/31/26

Bug Fixes

  • Fixed an issue where the MSP tenant’s Owner Tenant could be set to itself, which blocked all device onboarding with a "query returned no rows" error. A migration now repairs affected instances, backend validation prevents a tenant from being saved with itself as the owner, and the Owner Tenant dropdown no longer lists the current tenant as a selectable option.

Performance

  • ConnectWise Manage client lookups no longer cause multi-minute CPU spikes when loading the integration. Client deduplication now uses an O(n) hash set instead of an O(n²) list scan, dramatically reducing CPU usage for instances with large client lists.
  • Resolved severe thread contention during assignment resolution caused by synchronous EF Core queries holding a lock for the full duration of each database call. Assignment queries now use async APIs, releasing the lock immediately so concurrent requests share a single pending task instead of blocking each other.

0.79.0

Released 03/23/2026

New Features

  • Maintenance Session Expiration — Pending maintenance sessions can now be configured to automatically expire after a set number of days, preventing stale sessions from accumulating indefinitely.
  • PowerShell 7.5.4 — The embedded PowerShell runtime has been upgraded from 7.4.0 to 7.5.4, bringing the latest language features, runtime improvements, and security fixes to metascripts and deployment scripts.
  • Software Version Filtering in Get-ImmyComputerIds — The Get-ImmyComputerIds cmdlet now accepts -SoftwareComparisonOperator and -SoftwareVersion parameters, allowing operators to filter computers by installed software version using comparison operators (<, <=, =, >=, >).
  • Tenant Owner Reassignment — MSP admins can now change a tenant’s owner tenant directly from the tenant edit form without requiring backend intervention.
  • Use-OutOfProcessEphemeralConnection — A new metascript cmdlet ensures that the ephemeral connection to a computer runs out-of-process from the installed ImmyAgent service, enabling scenarios that require process isolation from the running agent.

Bug Fixes

  • Fixed OAuth consent flows for MSP custom app registrations using New-MsGraphOAuthConsentParameter — the consent service now correctly retrieves client secrets from the Azure tenant auth details store instead of only checking the generic OAuth key vault store.
  • Fixed a race condition in remote control session quota tracking where in-flight sessions could be missed during periodic sync, allowing concurrent sessions to exceed subscription limits.
  • Fixed ProviderClientGroupType GUIDs regenerating on every instance restart, which silently broke target assignments and schedules that stored the previous GUID value.
  • Fixed Get-ImmyComputerIds -Tag to include tags assigned at the tenant and primary-person level, restoring parity with legacy behavior.
  • Fixed dynamic software installs with LatestVersion or UpdateIfFound desired state to install the newest available dynamic version instead of aborting with an error when the dynamic version was newer than the pinned semver.
  • Fixed tenant-scoped licenses disappearing in child-tenant deployments. An "Apply to Child Tenants" option (enabled by default when a tenant is selected) now controls license visibility and applicability checking is moved to the backend.
  • Fixed local-to-global software migration failures where new configuration tasks defaulted to Local type and caused foreign key violations during migration. null maintenance task types are now treated as Local in the migration guard.
  • Fixed duplicate task execution during onboarding when the winning deployment changes after the primary user is set — the resolver now reuses existing actions by maintenance item identity rather than requiring an exact assignment ID match.
  • Fixed onboarding deployment ordering so OnboardingOnly tasks no longer jump ahead of other onboarding deployments with higher configured priority.
  • Fixed custom download scripts so that terminating errors (including throw and OperationStopped) now correctly fail the download phase. Non-terminating errors no longer cause unintended download failures.
  • Fixed Monaco editor listener accumulation on session detail pages with large log counts. The editor now initializes lazily when scrolled into view and log rendering is capped at 1,000 entries by default with a "Show all" option.
  • Fixed BindParameterHook calling orig() twice on PowerShell type coercion exceptions, reducing the exception rate in profiler traces by approximately 50%.
  • Fixed typed arrays (e.g., [int[]]) losing their element type after PowerShell CliXml round-trip serialization in metascript parameters.
  • Fixed user scripts running in USER_CONTEXT aborting on transient token acquisition failures during session state transitions (e.g., logon/unlock timing races) — GetSessionUserToken now retries on NoLoggedOnUserException.
  • Fixed the Azure permission level selector not initializing to the correct active level on page load due to onMounted firing before the component was fully loaded.
  • Fixed the "Use computer’s timezone for execution" schedule option being hidden when "Immediately after detection" is selected.
  • Fixed Maintenance Task parameter rows losing their padding in production due to a CSS specificity conflict.
  • Fixed the Software Details advanced section showing duplicate Dynamic Versions and Agent Integration entries. Spacing, separators, and help text have also been normalized.
  • Fixed spacing and alignment issues in the Software Version advanced settings layout, bringing it in line with the Software form.
  • Fixed the onboarding form incorrectly displaying validation errors when none were present.
  • Fixed the onboarding flow so that errors now display a dialog requiring acknowledgment before onboarding continues, rather than a toast that could be missed.
  • Fixed WiFi networks configured via PPKG not auto-connecting after provisioning by using the correct configure XML format.
  • Fixed users with the Manage Maintenance Tasks permission being unable to duplicate global tasks — duplicating creates a local copy and now correctly requires only maintenance_tasks:manage rather than global:manage.
  • Fixed an unhandled exception when creating a task without specifying a manager tenant.
  • Fixed provider client sync jobs to no longer use Hangfire, improving scheduling reliability for provider client synchronization.
  • Fixed agent startup on non-Windows platforms (macOS/Linux) crashing due to EventLog provider registration being called unconditionally — registration is now guarded by an OperatingSystem.IsWindows() check.
  • Fixed ad-hoc script SSE streaming to conform to the SSE specification (missing newline delimiter) and corrected the response MIME type to application/json-lines.
  • Fixed a duplicate key database error when syncing feature usage item counts that could intermittently crash background telemetry tasks.
  • Deleting a person now also deletes the associated linked user account and revokes their access, with an updated confirmation dialog that warns about account removal.

Improvements

  • The ImmyBot Agent now enforces domain and TLS certificate validation for backend connections when built with code-signing enabled, improving connection security.
  • Agent online status refresh logic is now centralized across all providers, fixing an inconsistency where ImmyAgent always fired connect/disconnect events regardless of actual state change while other providers did not.
  • Fixed an issue when you create a script that requires parameters, and fill the parameter field(s) out, typing in the script will erase all parameters.
  • Fixed an issue where onboarding sessions would fail in the onboarding stage if an ephemeral agent couldn’t be established.
  • Fixed an issue where the tenant deletion notification was being sent to users without permissions to see it.
  • Fixed an issue with users unable to see details on the azure page even if they had the correct view permissions

Performance

  • Replaced Z.EntityFramework.Plus and Polly cache with FusionCache for FindSoftware lookups, eliminating a CPU-intensive expression tree JIT compilation hotspot that appeared prominently in profiler traces on large instances.
  • Disabled vite-plugin-checker TypeScript checking during production builds, reducing frontend build memory consumption by approximately 1 GB.
  • Concurrent agent installer requests are now coalesced into batch database queries, reducing database load and improving scalability during high-volume agent registration. A race condition in device count increments has also been fixed with an atomic SQL update.

0.78.0

Released 03/02/2026

RBAC

RBAC is here!

Visit the docs to learn more

Improvements

  • Added new memory/disk panels with disk encryption indicator to the computer details page
  • Removed the unnecessary confirmation checkbox on the sidebar support request form
  • Reduced memory allocations for connected agents
  • The quick deploy form now renders the full parameter form if the selected software or task requires parameters.
  • Clicking the copy to clipboard button when viewing session logs should now also copy the timestamp of the log item.
  • Reduced memory allocations in azure group lookups
  • Scripts with [CmdletBinding()] now work in System/User context. Previously, adding [CmdletBinding()] to a param block would throw ParameterBindingException for context variables that weren’t declared as parameters.
  • Filter scripts using -InventoryKeys Software against large computer populations caused severe GC pressure. This has been improved to reduce resource usage.
  • Made several improvements to agent connection management that reduce overall resource usage

Bug Fixes

  • Fixed issues handling default values for parameters
  • Fixed an issue that prevented some installed Immy Agents from connecting after backend infrastructure changes.
  • Fixed required param validation when keys are present but null. Empty requests still skip required errors.
  • Fixed an issue that could occur on startup where schedules would not get setup if an exception occurred.
  • Fixed an issue where users could not approve change requests.
  • ArgumentList now binds to the correct parameters in positional order. Previously, values were binding to injected context variable params instead of user-declared params.
  • Added UnwrapToNativeType() extension method to properly convert JsonElement to native .NET types for PowerShell parameter binding.
  • Fixed a confusing OAuth consent UX where the “Default/Custom App Registration” badge could show the wrong value until page refresh.
  • Fixed an issue where the Azure user sync was not considering case-invariant email addresses, which led to unhandled exceptions
  • Fixed issues with azure buttons and components rendering even when the user did not have permission
  • Fixed an issue where soft-deleted computers did not appear in the Deleted Computers tab.
  • Fixed an issue where navigating to another computer details page while on the computer details page would not work correctly
  • Fixed an issue where long blocks of error text could show up under inventory identification keys
  • Fixed an issue with some agents not getting synced due to incorrect duplicate key detection
  • Fixed an issue with inventory script identification not always working as expected

0.77.1

Released 02/06/2026

Bug Fixes

  • Fixed an issue where setting a software’s access level to all would not save
  • Fixed an issue where loading CW Automate or Screenconnect groups on the deployment page would throw an error
  • Fixed an issue where the request access button would be disabled even when the Access Requests preference was enabled
  • Fixed an issue where loading azure consent for some customers would throw an error

0.77.0

Released 02/03/2026

Improvements

  • Software installers and media uploads are now proxied through a CDN instead of pulling directly from Azure Blob Storage. Global installers are proxied through global.immy.bot, and local installers and media are proxied through local.cdn.immy.bot.
  • Onboarding deployments no longer show a parameter error modal on save if the only parameters that have errors are ones marked to be provided by the onboarding form.
  • Added a "Copy Link" button to open scripts in the script editor. Navigating to this link will open the script in the script editor.
  • Cleaned up and reformatted some agent PowerShell logging.
  • Improved some styling when viewing from a mobile device.
  • Added an overlay "Clear Output" button in the computer terminal tab.
  • New-DateTimeParameter now always renders as a datetime-local input (date + time).
  • New-DateParameter is added for date-only inputs; it renders as date-only with no time selector. Existing saved date-only values still render as dates and are not re-saved unless the user edits the field, preventing silent time-component changes on open/save.
  • Improved performance and cancellation support for the Wait-ImmyComputer cmdlet.

Bug Fixes

  • Fixed an issue where scheduled computer sessions would not get created if the computer had a session already running.
  • Fixed an issue with dynamic parameters not showing up correctly in the script editor.
  • Fixed an issue where duplicating a deployment would result in the desired software state being unset.
  • Fixed an issue where inventory script keys could be created with special characters, causing them to fail.
  • Fixed an issue where the integration ID parameter was not consistently passed to scripts.
  • Fixed an issue where integration agents were being disassociated from computers and re-identified when they were moved between clients.

0.76.3

Released 01/27/2026

Bug Fixes

  • Fixed an issue where users would not be redirected to the billing page when a trial expired or when the selected billing plan required any changes

0.76.2

Released 01/26/2026

Stability Improvements

  • Improved memory footprint of integration audit logs around refreshing an agent’s online status
  • Improved CPU and memory footprint when writing output to PowerShell streams.
  • Improved CPU and memory footprint in Azure data syncs
  • Improved memory footprint in global software caches and lookups

0.76.1

Released 01/22/2026

Bug Fixes

  • Fixed an issue with some tenant admins unable to load the tag list page
  • Fixed an issue where the preferences page would continually reload when toggling on PII mode

0.76.0

Released 01/19/2026

Bug Fixes

  • Fixed an issue where duplicate media api requests were being made when loading certain pages
  • Fixed an issue with the batch actions button’s disabled state on the computer list page
  • Fixed an issue where clicking agent icons on a deleted computer responded with a 404 instead of a messaging stating you must restore the computer to perform this action
  • Fixed issues wirth certain response types causing issues when loading the Swagger API page
  • Fixed a rare uncaught exception that could cause the server to shutdown
  • Fixed an issue with saving the script timeout value where the value would still be used even when the checkbox to override was unchecked
  • Fixed the display of integration logos in timeline events
  • Fixed a rare issue that could cause the deployments page and search to not load properly
  • Fixed an issue that prevented the application locks page from loading
  • Fixed an issue where New-DropDownParameter returned null when the multiselect switch was used
  • Fixed an issue with calling Get-ProviderAgent in cloud scripts
  • Fixed a typo in the error message displayed when a device has no connected agents
  • Fixes an issue with redacting some in provider logs. Keeps REDACTED visible without errors.
  • Fixed an issue when child tenants were created and linked to the same Azure tenant as the MSP tenant, the Azure user sync process would incorrectly move people objects between tenants based on domain filtering. This caused MSP Users and Admins to lose management access.
  • Fixed an issue where the computer table export button would be shown even if the user didn’t have permission to export computers
  • Fixed an issue where desired version was not showing up in maintenance actions during resolution only sessions or detection sessions triggered from quick deploy
  • Fixed an issue where integrations not using inventory identification were showing up in the computer overview tab. An example is "CW Manage Agent — Not Inventoried Yet"
  • Fixed an issue where disabling integrations from pulling agents in from linked clients would not always work and agents would still sync
  • Fixed an exception that would occur during an integration’s client sync when the client did not have any linked clients
  • Fixed PSStreamObject cast exceptions by wrapping ephemeral agent error stream messages in ErrorRecord
  • Fixed an issue where choco results would not show up in the maintenance selector
  • Fixed an issue where sending test emails from the SMTP page were failing

Improvements

  • Improved performance of the maintenance sessions list page
  • Upgraded the server to use .NET 10
  • Updated styling of right-side sidebar to have more contrast in dark-mode
  • Added the ability to load drafts for modified scripts that were closed before they could be saved or discarded.
  • Updated ScreenConnect extension to be compatible with newer versions and made some performance improvements.
  • Set-Session now persists the reboot preference to the session which allows the new preference to be picked up on future actions.
  • Local software can now select a global integration type as the agent integration
  • We now hide the "Getting Started" dropdown menu item when the checklist has been completed
  • Improved the styling of the maintenance task parameter form
  • Resizing the script editor panes now persists when closing the script editor or browser
  • Added PKCE support to New-OAuthConsentParameter cmdlet

Was this article helpful?