Skip to content

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Aug 15, 2025

Updated Hangfire.AspNetCore from 1.7.25 to 1.8.21.

Release notes

Sourced from Hangfire.AspNetCore's releases.

1.8.21

Release Notes

Hangfire.Core

  • AddedFailedState.IncludeFileInfo to optionally show/hide line numbers in exceptions in Failed state.
  • Changed – Include line numbers for exceptions by default when available.
  • Fixed – Portuguese (Brazil) translations in Strings.pt-BR.resx (by @​pedro-cons).
  • Fixed – Static BackgroundJob class always acquires the most current JobStorage.Current instance.
  • Fixed – Static RecurringJob class always acquires the most current JobStorage.Current instance.

Hangfire.SqlServer

  • AddedSqlServerStorageOptions.DisableTransactionScope option for .NET Framework targets.
  • Project – Port Monitoring API tests from the Hangfire.InMemory storage for better coverage.
  • Project – Run tests for different targets in parallel with different databases.

1.8.20

Release Notes

Hangfire.Core

  • Fixed – Glyphicons from Bootstrap are not displaying after upgrading to version 1.8.19.

1.8.19

Release Notes

Hangfire.Core

  • Changed – Update Bootstrap to the custom version of 3.4.2 to avoid false alerts on unused features.
  • Fixed – Typos in Portuguese translation (by @​VianaArthur).
  • Fixed – Unnecessary recurring job update transaction when nothing is changed after an error.

Hangfire.SqlServer

  • Fixed – Sliding invisibility timeout isn't prolonged in lightweight servers, causing jobs to be restarted.

1.8.18

Release Notes

Hangfire.Core

  • AddedDashboardOptions.ServerPossiblyAbortedThreshold to configure a custom threshold for "possibly aborted" warnings.
  • Fixed – Expired jobs are still shown on the "Retries" page in some cases.
  • Fixed – Issues with CultureInfo-related differences after upgrading to 1.8.15–1.8.17.
  • Fixed – Don't leak AsyncLocal values from synchronous background job methods.
  • Fixed – Don't throw an exception when passing the Job.Args property to the Job class' constructor.
  • Project – Make the lock file usable for both .NET 8.0 and .NET 9.0 builds.
  • Project – Make code generation for cshtml files working on newer platforms.

Hangfire.AspNetCore

  • Fixed – Swallow possible ObjectDisposedException in the StopAsync method.
  • Fixed – Avoid NullReferenceException when LocalIpAddress or RemoteIpAddress is null.

1.8.17

Release Notes

Hangfire.SqlServer

  • FixedInvalidCastException while fetching a job with older schemas regression from 1.8.16.

1.8.16

Release Notes

Hangfire.Core

  • Changed – Include fewer stack frames in exceptions come from IServerFilter implementations.
  • Changed – Don't include file information in the ExceptionDetails property of a FailedState instance.
  • Changed – Switch back to CancellationEvent usage instead of CancellationToken.WaitHandle.
  • Fixed – Don't commit external transaction in the BackgroundJobStateChanger implementation.
  • Fixed – Use safe default serializer settings for Newtonsoft.Json 12.X and below.
  • Project – Fix builds for the net451 platform when using .NET 9.0.
  • Project – Significantly reduce execution time of unit tests in the RecurringJobSchedulerFacts class.
  • Project – Bump Microsoft.CodeAnalysis.NetAnalyzers package to version 9.0.0.

Hangfire.SqlServer

  • Changed – Use vanilla ADO.NET when fetching a job in the SqlServerJobQueue implementation.
  • Changed – Decrease the LockTimeout time when calling the sp_getapplock procedure to 1 second for less blocking.
  • Fixed – SqlException: Must declare the scalar variable "key" in delayed and recurring job schedulers.
  • Project – Disable parallel tests execution when building under .NET 9.0.
  • Project – Run tests over the latest Microsoft.Data.SqlClient package and the net6.0 platform.
  • Project – Reduce execution time of integration tests.
  • Project – Disable PoolBlockingPeriod setting on AppVeyor to handle transient test failures.

1.8.15

Release Notes

Hangfire.Core

  • Added – New AutomaticRetryAttribute.ExceptOn property to skip retries for specific exceptions.
  • Changed – Refactor filters pipeline to use less LINQ magic and fewer allocations.
  • Changed – Use GetCultureInfo instead of creating an instance in the CaptureCultureAttribute filter.
  • Changed – Cache some immutable data to avoid extra allocations.
  • Fixed – Improve loopback address detection (by @​meziantou).
  • Fixed – Reformulate misleading error messages regarding retry timings (by @​RGFuaWVs).
  • Fixed – Problem with missing localizations in the previous version.
  • Fixed – Don't hide exception details on Failed Jobs page when the exception message is empty.
  • Fixed – Problems with the first restore when using the build.bat command.
  • Fixed – Better display of canceled recurring jobs in dashboard.
  • Fixed – Less overall allocations with using static delegates and struct-based iterators.
  • Fixed – Improve precision of some diagnostic messages in the wait protection logic.
  • Fixed – Make all private and internal classes sealed to improve code consistency.
  • Fixed – Less overall pressure on garbage collector.

Hangfire.SqlServer

  • Changed – Use query template caching based on schema name to avoid excessive string allocations.
  • Changed – Use static callbacks almost anywhere to avoid unnecessary delegate allocations.
  • Changed – Use QuerySingle* or ReadSingle* where possible to avoid allocating lists.
  • Changed – Unify DbCommand and DbParameter creation logic to improve code consistency.

1.8.14

Release Notes

Hangfire.Core

  • Changed – Partial cache for serialization and deserialization in InvocationData to produce less strings.
  • Changed – Add caching for default type serializer and resolver.
  • Changed – Don't let JobFilter-related logic to show up in profilers.
  • Changed – Modify IProfiler to be less allocatey for diagnostic purposes that almost never run.
  • Changed – Prefer using CancellationToken.WaitHandle again, since early .NET Core days are gone.
  • Changed – Fewer allocations when working with IStateHandler collections in a state machine.
  • Fixed – Redirect the "System.Private.Xml.Linq" assembly to the "System.Xml.Linq" one for better interoperability.
  • Fixed – Don't throw KeyNotFoundException when recurring job is malformed.
  • Fixed – Proper relative path calculation in UrlHelper.To for OWIN-based Dashboard UI (by @​LordJZ).
  • Fixed – Typo in the Turkish localization file (by @​ismkdc).
  • Project – Switch to a modern PowerShell 7+ to speed up SignPath installation on AppVeyor.

Hangfire.SqlServer

  • Changed – Limit polling queries when queues are empty with a semaphore for all configurations.
  • Changed – Use per-queue signaling for same-process workers, instead of having a global signal.
  • Fixed – Don't silently truncate queue names, throw an exception instead.
  • Project – Decrease delays in SQL Server-related tests to complete them faster.

1.8.12

Release Notes

Hangfire.Core

  • AddedMaxDegreeOfParallelismForSchedulers experimental server option if supported by storage.
  • Added – Experimental support for parallel execution of the delayed job scheduler.
  • Added – Experimental support for parallel execution of the recurring job scheduler.
  • Fixed – Recurring job is scheduled to the past after recovering from error with AddOrUpdate.
  • FixedAddOrUpdate triggers execution of a recurring job, even if its next execution is in the future.
  • Fixed – Two very minor errors in the Swedish localization file (by @​Uglack).

Hangfire.SqlServer

  • Fixed – Populate InvocationData and LoadException properties in JobDetails method results.

1.8.11

Release Notes

Hangfire.Core

  • Changed – Add icons and fix metadata for NuGet packages.
  • Changed – Bump ILRepack to version 2.0.27 to avoid problems with internalizing.
  • Fixed – "Type exists in both Cronos and Hangfire.Core" exception.

1.8.10

Release Notes

Hangfire.Core

  • Changed – Added Norwegian translations for new keys (by @​khellang).
  • Changed – Update Brazilian Portuguese translation (by @​HugoAlames).
  • Changed – Bump Cronos dependency to version 0.8.3.

Hangfire.AspNetCore

  • Fixed – Don't check HasStarted in Response.WriteAsync to avoid breaking dispatchers.

Hangfire.SqlServer

  • Changed – Bump Dapper for the netstandard2.0 platform to version 2.1.28.
  • Changed – Bump Dapper for net451 and netstandard1.3 platforms to version 1.60.6.

Hangfire.Core, Hangfire.NetCore, Hangfire.AspNetCore, Hangfire.SqlServer, Hangfire.SqlServer.Msmq

  • Project – Enable NuGet package and DLL signing with a company certificate.
  • Project – Require NuGet package signature validation on restore for dependencies.
  • Project – Add HangfireIO as a package owner.

1.8.9

Release Notes

Please note that version 1.8.8 was unlisted on NuGet because of broken package references.

Hangfire.Core

  • Changed – Use Environment.MachineName as a server name if other environment vars aren't available.
  • Changed – Bump the Cronos package version from 0.7.1 to 0.8.1.
  • Changed – Improve portuguese translations (by @​filipe-silva).
  • Fixed – Possible NullReferenceException on the Deleted Jobs page (regression from 1.8.7).
  • Project – Enable full source link support with embedded symbols and repository-based sources.
  • Project – Enable repeatable package restore using a lock file.
  • Project – Run unit tests against the net6.0 platform.
  • Project – Modernise the build system and clean up the build scripts.

Hangfire.SqlServer

  • Project – Enable full source link support with embedded symbols and repository-based sources.
  • Project – Enable repeatable package restore using a lock file.
  • Project – Run unit tests against the net6.0 platform.

Hangfire.NetCore

  • Project – Enable full source link support with embedded symbols and repository-based sources.
  • Project – Enable repeatable package restore using a lock file.

Hangfire.AspNetCore

  • Fixed – Don't attempt to write response headers when response has already started (by @​maliming).
  • Project – Enable full source link support with embedded symbols and repository-based sources.
  • Project – Enable repeatable package restore using a lock file.

1.8.7

Release Notes

Hangfire.Core

  • Added – Allow using macro expressions like @​hourly for recurring jobs (by @​MuhamedAbdalla).
  • Added – Show storage time in page footer when supported by storage implementation.
  • Added – Show duration and latency columns separately on the Succeeded Jobs page when supported.
  • Added – Show the exception column on the Deleted Jobs page when available and supported by storage.
  • Changed – Reduce package size by stripping unnecessary locales in Moment.js.
  • Changed – Bump Microsoft.Owin package to version 4.2.2.
  • Changed – Log a warning message when a server listens to unsupported queue names (by @​MuhamedAbdalla).
  • Changed – Use storage time, if available, to show delay warnings in the Dashboard UI.
  • Fixed – Proper rendering of generic arguments on the Job Details page (by @​olivermue).
  • Fixed – Language inconsistency in the Dashboard UI related to date/time description.
  • Fixed – Big stack traces take too long time to be formatted.
  • Fixed – Don't throw NullReferenceException from the Scheduled Jobs page when there's a job with missing data.
  • Fixed – Don't throw NullReferenceException from the Processing Jobs page when there's a job with missing data.
  • Fixed – CSS for Enqueued and Deleted state cards in dark theme.
  • Fixed – Log errors instead of throwing an exception when a particular table can't be cleaned.
  • Fixed – Avoid logging fatal exceptions when stopping a faulting background process.
  • Fixed – Don't display checkboxes in the Dashboard UI when job details can not be fetched.
  • Fixed – Scrollbars in WebKit-based browsers are now dark in dark mode.
  • Project – Disable tests for netcoreapp1.0 and netcoreapp2.1 targets since they aren't supported in AppVeyor.
  • Project – Add a net6.0 target for unit tests instead of the removed ones.
  • Project – Modernise projects and build environments to use the newest features.

Hangfire.SqlServer

  • Changed – Avoid throwing an exception when a connection string has duplicate property names.
  • Project – Disable tests for netcoreapp1.0 and netcoreapp2.1 targets since they aren't supported in AppVeyor.
  • Project – Add a net6.0 target for unit tests instead of the removed ones.
  • Project – Modernise projects and build environments to use the newest features.

1.8.6

Release Notes

Hangfire.Core

  • Changed – Update jQuery library in Dashboard UI to version 3.7.1.
  • Changed – Mark all types in Hangfire.Annotations with EditorBrowsableAttribute(Never).
  • Changed – Change state card colors for the Awaiting state to match the Scheduled state.
  • Fixed – Exception when deserializing an instance of the AutomaticRetryAttribute class from JSON.
  • Fixed – Add serialization-related constructors for all the exception classes.
  • Fixed – Use invariant culture or ordinal comparisons for internal strings.
  • Fixed – Use invariant culture when formatting key names for metrics.
  • Fixed – Use CurrentCulture instead of CurrentUICulture when displaying time.
  • Project – Enable running static analysis by Coverity Scan weekly.
  • Project – Enable mandatory static analysis by the Microsoft.CodeAnalysis.NetAnalyzers package.
  • Project – Change MSBuild path when building using newer .NET SDKs for Razor views.

Hangfire.SqlServer

  • Fixed – Exception in Dashboard UI when schema version is not present in a database.
  • FixedDbCommand resource leak when releasing a lock detected by static analysis.
  • Fixed – Don't add SQL Server-related metrics multiple times in Dashboard UI.

Hangfire.NetCore

  • Fixed – Include assembly information to the Hangfire.NetCore assembly.

1.8.5

Release Notes

Hangfire.Core

  • Added – Possibility to inform a FaviconPath on DashboardOptions (by @​cezar-pimentel).
  • Fixed – Inability to restore a disabled recurring job, regression in version 1.8.3.
  • Fixed – Make it possible to serialize the AutomaticRetryAttribute filter to JSON.

Hangfire.SqlServer

  • Fixed – "Query processor could not produce a query plan" when removing expired counters in Schema 5.

1.8.4

Release Notes

Hangfire.Core

  • Added – Pass server id from a worker to the PerformContext.ServerId property available in filters.
  • Fixed – Send heartbeats until full background processing server shutdown.

Hangfire.NetCore

  • Changed – Send the stop signal earlier in the shutdown pipeline when hosting in .NET Core 3.1 or higher.
  • Changed – Set processing server to null in hosted service to avoid ObjectDisposedException.
  • Fixed – Other IHostedService implementations can block Hangfire server from being stopped.

1.8.3

Release Notes

Hangfire.Core

  • Changed – Allow to configure MaxLinesInStackTrace for a particular FailedState instance.
  • Fixed – Remove job id from schedule when it's not in the Scheduled state for some reason.
  • Fixed – Missing invocations of recurring jobs when the new "Ignorable" option is used.
  • Fixed – Make DisableConcurrentExecutionAttribute and LatencyTimeoutAttribute serializable.

1.8.2

Release Notes

Hangfire.Core

  • Changed – Disable transactional job creation feature appeared in 1.8.0.
  • Fixed – "Can not start continuation XXX" error when storage supports transactional job creation.

Hangfire.SqlServer

  • FixedInvalidOperationException with new dashboard metrics when a database has multiple data/log files.

1.8.1

Release Notes

Hangfire.Core

  • AddedMisfireHandlingMode.Ignorable to avoid scheduling recurring jobs on missed schedules.
  • Added – Support disabling dark mode via the DashboardOptions.DarkModeEnabled property.
  • Changed – Remove the 1-hour limitation for the WithJobExpirationTimeout configuration method.
  • Fixed – Add missing UseDefaultCulture configuration method overloads.
  • Fixed – Add missing UseDashboardStylesheet and UseJobDetailsRenderer configuration methods.
  • Fixed – Give even more space for identifiers on the Recurring Jobs page.
  • Fixedstate-card-state-active color is not very dark (by @​coolhome).
  • Fixed – Slightly change chart proportions to fit 4K in Dashboard UI.

Hangfire.SqlServer

  • Fixed – Blocked workers regression since 1.7.28 when using multiple servers inside a process.
  • Fixed – Target schema version is less than the current schema version error.
  • Fixed – Implement database metrics without the need for additional permissions.
  • Fixed – Use the forceseek table hint whenever possible to avoid performance drops.

Hangfire.NetCore

  • Fixed – Add net461 target for Hangfire.NetCore package to avoid missing method exceptions.

1.8.0

Release Notes

Please see more human-friendly release notes in our blog https://www.hangfire.io/blog/2023/04/28/hangfire-1.8.0.html. Please see https://docs.hangfire.io/en/latest/upgrade-guides/upgrading-to-hangfire-1.8.html to learn how to upgrade.

Hangfire.Core

  • Breaking – Dropped the NET45 platform target in favor of the NET451 target to support Visual Studio 2022.
  • Added – Introduce the Job.Queue property, so jobs now can have their own queue specified.
  • Added – Method overloads to create background jobs directly with a custom default queue.
  • Added – Method overloads to create recurring jobs directly with a custom default queue.
  • AddedIBackgroundJobClient.Create method overloads with the new queue parameter.
  • Added – Allow to filter exception types in AutomaticRetryAttribute by using the new OnlyOn property.
  • AddedDeletedState now has the persisted Exception property populated after a failure.
  • AddedJobContinuationOptions.OnlyOnDeletedState to create continuations after a failure.
  • AddedException job parameter is passed to continuation when UseResultsInContinuations method is used.
  • AddedFromExceptionAttribute to deal with an antecedent exception in a background job continuation.
  • Added – Make it possible to specify multiple JobContinuationOptions values for a continuation.
  • AddedBackgroundJobServerOptions.IsLightweightServer option to run a server with no storage processes.
  • Added – Ability to use custom formattable resource identifiers for the DisableConcurrentExecution filter.
  • Added – Pass ServerId to FailedState instances to simplify the debugging on different servers.
  • Added – Allow to pass job parameters when creating a job (by @​brian-knoll-micronetonline).
  • AddedMisfireHandlingMode.Strict to create a job for each missed recurring job occurrence.
  • Added – Support for default culture and UI culture via the UseDefaultCulture configuration method.
  • Added – Introduce the captureDefault parameter in the CaptureCulture filter.
  • AddedIGlobalConfiguration.UseFilterProvider extension method to unify the configuration.
  • Added – Built-in Remove method for JobFilterCollection to remove global filters based on their type.
  • AddedCompatibilityLevel.Version_180 flag to avoid storing culture parameters when they are the same as the default ones.
  • Changed – Create job atomically when Transaction.CreateJob feature is supported by the storage.
  • Changed – Query time from storage in recurring and delayed schedulers when supported by storage.
  • Changed – Move job to the DeletedState instead of SucceededState when its invocation was canceled by a filter.
  • Changed – Speedup delayed jobs when a custom default queue is specified by avoiding extra state transition.
  • Changed – Use UI culture from CurrentCulture parameter when CurrentUICulture one is missing.
  • Changed – Increase the default value for the BackgroundJobServerOptions.StopTimeout to 500 ms.
  • DeprecatedAddOrUpdate overloads with optional params defined in the RecurringJobManagerExtensions class.
  • DeprecatedAddOrUpdate overloads with optional parameters defined in the RecurringJob class.
  • DeprecatedAddOrUpdate method overloads with no recurringJobId parameter.
  • DeprecatedRecurringJobOptions.QueueName property, new methods should be used instead.
  • Breaking – Dropped NET45 platform target in favor of NET451 target to support Visual Studio 2022.

Dashboard UI

  • Added – Dark mode support for Dashboard UI depending on the system settings (by @​danillewin).
  • Added – Dashboard UI now has a full-width layout to display more data (by @​danillewin).
  • Added – Allow to add custom JavaScript and CSS files to the Dashboard UI via the DashboardRoutes class.
  • AddedDefaultRecordsPerPage property on the DashboardOptions class (by @​PaulARoy).
  • AddedIGlobalConfiguration.UseJobDetailsRenderer method for custom renderers for the Job Details page.
  • Added – Display deleted jobs in the Realtime and History graphs when supported by storage.
  • AddedIGlobalConfiguration.UseDashboardMetrics extension method to pass multiple metrics at once.
  • Added – State renderer for the DeletedState to display its new exception property.
  • Added – Support for new MonitoringApi methods for the Awaiting Jobs page.
  • Changed – Make it possible to display methods of non-loaded jobs in the Dashboard UI when supported by storage.
    ... (truncated)

1.8.0-rc4

Release Notes

Hangfire.Core

  • AddedDefaultRecordsPerPage property on the DashboardOptions class (by @​PaulARoy).

Hangfire.NetCore

  • Changed – Send the "stop" signal earlier when host supports .NET Standard 2.1.
  • Changed – Don't throw ObjectDisposedException when hosted service disposed twice.

Hangfire.SqlServer

  • AddedSchema 9 migration that creates index for the State.CreatedAt column.
  • Added – Clean up of old state entries of a non-finished job when InactiveStateExpirationTimeout is set.
  • AddedDefaultQueueProvider option to specify a custom default queue provider.
  • Changed – Enable common metrics for SQL Server storage to be shown by default.

1.8.0-rc3

Release Notes

Please see release notes in our blog – https://www.hangfire.io/blog/2023/03/30/hangfire-1.8.0-rc3.html.

Hangfire.Core

  • Added – Introduce the captureDefault parameter in the CaptureCulture filter.
  • Added – Built-in awaiting metric through the StatisticsDto.Awaiting for monitoring stats.
  • AddedJobStorageFeatures class to avoid using magic strings in storage features.
  • Added – Create job atomically when corresponding storage feature supported.
  • Added – Support for new MonitoringApi methods for the Awaiting Jobs page.
  • Changed – Rely on captureDefault when dealing with default cultures instead of compatibility level.
  • Changed – Rename in a non-breaking way SetContains to GetSetContains for consistency.
  • Changed – Rely on storage indexing with Monitoring.AwaitingJobs feature.
  • Changed – Rename the BatchedGetFirstByLowest feature.
  • Changed – Throw more descriptive NotSupportedException from new storage methods
  • Changed – Make new methods in JobStorageMonitor virtual, not abstract.
  • Changed – Change GetSetCount with multiple keys in a non-breaking way.
  • Fixed – Throw an exception early when Job.Queue feature not supported.
  • Fixed – Don't show assembly details in deleted state renderer.
  • Rollback – Use the AttemptsExceededAction.Delete option by default in the global automatic retry filter.

Hangfire.SqlServer

  • Changed – Enable the Monitoring.AwaitingJobs feature for SQL storage.
  • Changed – Implement the Transaction.AcquireDistributedLock feature.
  • Changed – Implement the GetSetCount.Limited feature.
  • Changed – Implement the GetSetContains feature.
  • Fixed – Detect schema-related options after migration, not before, to get the actual schema version.

1.8.0-rc2

Release Notes

Hangfire.Core

  • Added – Support for default culture and UI culture via the UseDefaultCulture configuration method.
  • AddedCompatibilityLevel.Version_180 flag to avoid storing culture parameters when they are the same as default.
  • AddedBackgroundJobServerOptions.IsLightweightServer option to run server with no storage processes.
  • Changed – Use UI culture from CurrentCulture parameter when CurrentUICulture one is missing.

Hangfire.SqlServer

  • Breaking – Prioritise Microsoft.Data.SqlClient package over System.Data.SqlClient one.
  • Changed – Bump internal version of Dapper to 2.0.123.
  • Changed – Remove System.Data.SqlClient package from the NuGet dependency graph (by @​0xced).

Hangfire.NetCore

  • Addednet451 and netstandard1.3 targets for the package.
  • Changed – Use netstandard2.1 target instead of netcoreapp3.0 for the package.

Hangfire.AspNetCore

  • Breaking – Make the package to be dependent on Hangfire.NetCore to use the same types.

1.8.0-rc1

Release Notes

Hangfire.Core

  • Added – Introduce the Job.Queue property, so jobs now can have their own queue specified.
  • Added – Method overloads to create background jobs directly with a custom default queue.
  • Added – Method overloads to create recurring jobs directly with a custom default queue.
  • AddedIBackgroundJobClient.Create method overloads with the new queue parameter.
  • AddedJobContinuationOptions.OnlyOnDeletedState to create continuations after a failure.
  • Added – Make it possible to specify multiple JobContinuationOptions values for a continuation.
  • Added – Ability to use custom formattable resource identifiers for the DisableConcurrentExecution filter.
  • Added – Pass ServerId to FailedState instances to simplify the debugging on different servers.
  • Added – Allow to pass job parameters when creating a job (by @​brian-knoll-micronetonline).
  • AddedMisfireHandlingMode.Strict to create job for each missed recurring job occurrence.
  • AddedDeletedState now have the persisted Exception property populated after a failure.
  • AddedException job parameter is passed to continuation when UseResultsInContinuations method is used.
  • AddedFromExceptionAttribute to deal with an antecedent exception in a background job continuation.
  • Added – Allow to filter exception types in AutomaticRetryAttribute by using the new OnlyOn property.
  • Added – Built-in Remove method for JobFilterCollection to remove global filters based on their type.
  • AddedIGlobalConfiguration.UseFilterProvider extension method to unify the configuration.
  • Changed – Use the AttemptsExceededAction.Delete option by default in the global automatic retry filter.
  • Changed – Query time from storage in recurring and delayed schedulers when supported by storage.
  • Changed – Increase the default value for the BackgroundJobServerOptions.StopTimeout to 500 ms.
  • Changed – Speedup delayed jobs when custom default queue is specified by avoiding extra state transition.
  • Changed – Move job to the DeletedState instead of SucceededState when its invocation was canceled by a filter.
  • DeprecatedAddOrUpdate overloads with optional params defined in the RecurringJobManagerExtensions class.
  • DeprecatedAddOrUpdate overloads with optional parameters defined in the RecurringJob class.
  • DeprecatedAddOrUpdate method overloads with no recurringJobId parameter.
  • DeprecatedRecurringJobOptions.QueueName property, new methods should be used instead.
  • Breaking – Dropped NET45 platform target in favor of NET451 target to support Visual Studio 2022.

Dashboard UI

  • Added – Dark mode support for Dashboard UI configurable with the UseDarkModeSupportForDashboard method (by @​danillewin).
  • Added – Dashboard UI now have full-width layout to display more data (by @​danillewin).
  • Added – Allow to add custom JavaScript and CSS files to the Dashboard UI via the DashboardRoutes class.
  • AddedIGlobalConfiguration.UseJobDetailsRenderer method for custom renderers for Job Details page.
  • Added – Display deleted jobs in the Realtime and History graphs when supported by storage.
  • AddedIGlobalConfiguration.UseDashboardMetrics extension method to pass multiple metrics at once.
  • Added – State renderer for the DeletedState to display its new exception property.
  • Changed – Make it possible to display methods of non-loaded jobs in Dashboard UI when supported by storage.
  • Changed – Improved display of real-time chart with more accents on failed and deleted jobs.
  • Changed – Don't display queue name in state transition list when it's the default one.
  • Changed – Display scheduled job count when enqueued count is zero on the main metric.

Extensibility

  • AddedFactory, StateMachine and Performer properties to context classes to avoid injecting services.
  • Added – Allow to pass custom data to ApplyStateContext and ElectStateContext instances.
  • Added – Preserve custom data dictionary between the entire filter chain.
    ... (truncated)

1.8.0-beta4

Release Notes

Hangfire.Core

  • Added – Dark mode support for Dashboard UI configurable with the UseDarkModeSupportForDashboard method.
  • Added – Allow to add custom JavaScript and CSS files to the Dashboard UI via the DashboardRoutes class.
  • Added – Ability to use custom formattable resource identifiers for the DisableConcurrentExecutionAttribute.
  • Changed – Increase the default value for the BackgroundJobServerOptions.StopTimeout to 500 ms.

Hangfire.SqlServer

  • AddedTryAutoDetectSchemaDependentOptions option to automatically enable options based on schema.
  • ChangedGetJobData now populates JobData.ParametersSnapshot property to avoid additional round-trips.
  • Changed – Polling delay when QueuePollInterval is set to zero now defaults to 200 ms.
  • DeprecatedUsePageLocksOnDequeue option is now obsolete and doesn't affect anything.

1.8.0-beta3

Release Notes

Hangfire.Core

  • Added – Introduce the Job.Queue property, so jobs now can have their own queue specified.
  • Added – Method overloads to create recurring jobs directly with a custom default queue.
  • Added – Method overloads to create background jobs directly with a custom default queue.
  • AddedIBackgroundJobClient.Create method overloads with the new queue parameter.
  • Added – Experimental JobStorageConnection.SetContains method.
  • Added – Pass ServerId to FailedState instances to simplify the debugging on different servers.
  • Changed – Dashboard UI now have full-width layout to display more data (by @​danillewin).
  • Changed – Query time from storage in recurring and delayed schedulers when supported by storage.
  • Changed – Speedup delayed jobs when custom default queue is specified by avoiding extra state transition.
  • Changed – Display scheduled job count when enqueued count is zero on the main metric.
  • Changed – Don't display queue name in state transition list when it's the default one.
  • Changed – Re-implement TaskExtensions.WaitOneAsync only with the RegisterWaitForSingleObject method.
  • Changed – Expose state data dictionaries in list DTOs when supported by storage.
  • Changed – Make it possible to display methods of non-loaded jobs in Dashboard UI when supported by storage.
  • Fixed – Check job details for the null value before passing it to renderers (regression).
  • DeprecatedAddOrUpdate overloads with optional params defined in the RecurringJobManagerExtensions class.
  • DeprecatedAddOrUpdate overloads with optional parameters defined in the RecurringJob class.
  • DeprecatedAddOrUpdate method overloads with no recurringJobId parameter.
  • DeprecatedRecurringJobOptions.QueueName property, new methods should be used instead.

Hangfire.SqlServer

  • Added – Implement the Connection.GetUtcDateTime feature to make work new changes in schedulers.
  • Changed – Display scheduled and processing jobs in the ascending order in Dashboard UI.

1.8.0-beta2

Release Notes

Hangfire.Core

  • AddedMisfireHandlingMode.Strict to create job for each missed recurring job occurrence.
  • Added – Allow to pass parameters when creating a job (by @​brian-knoll-micronetonline).
  • Added – Make it possible to use specify multiple JobContinuationOptions for a continuation.
  • AddedCreateJob method to the JobStorageTransaction abstract class.
  • AddedSetJobParameter method to the JobStorageTransaction abstract class.
  • Changed – Allow to query job parameters without roundtrip when supported by a storage.
  • Changed – Turn JobContinuationOptions enum into flags while still possible.
  • Changed – Avoid storage roundtrip to query job data in worker, take data from previous state change.
  • Fixed – Don't overwrite existing argument values with null job parameters when using FromParameter attribute.
  • Fixed – Job continuation mistakenly started when using the new OnlyOnDeletedState option.

Hangfire.SqlServer

  • Changed – Set default value for the QueuePollInterval option to TimeSpan.Zero.
  • Changed – Use command batching by default with 5-minute maximum timeout.
  • Changed – Enable UseRecommendedIsolationLevel option by default.

1.8.0-beta1

Release Notes

Hangfire.Core

  • Added – Display deleted jobs in the Realtime and History graphs when supported by storage.
  • AddedDeletedState now have the persisted Exception property.
  • AddedJobContinuationOptions.OnlyOnDeletedState to create continuations after a failure.
  • AddedException job parameter is passed to continuation when UseResultsInContinuations method is used.
  • AddedFromExceptionAttribute to deal with an antecedent exception in a background job continuation.
  • Added – Allow to filter exception types in AutomaticRetryAttribute by using the new OnlyOn property.
  • AddedIBackgroundProcess.UseBackgroundPool now allows to pass thread configuration logic.
  • AddedIGlobalConfiguration.UseJobDetailsRenderer method for custom renderers.
  • AddedBackgroundJobServerOptions.WorkerThreadConfigurationAction option
  • Added – Allow to pass custom data to ApplyStateContext and ElectStateContext instances.
  • Added – Preserve custom data dictionary between the entire filter chain.
  • Added – Fetch "Retries" metric with other statistics when supported by storage
  • AddedIGlobalConfiguration.UseDashboardMetrics extension method to pass multiple metrics at once.
  • Added – State renderer for the DeletedState to display its new exception property.
  • Added – Virtual JobStorage.GetReadOnlyConnection method intended to return JobStorageConnection for replicas.
  • Added – Virtual JobStorage.HasFeature method for querying optional features.
  • Added – Optional GetSetCount and GetUtcDateTime methods for the JobStorageConnection class.
  • Added – Optional AcquireDistributedLock and RemoveFromQueue methods for the JobStorageTransaction class.
  • Added – Support for transactional acknowledge using new storage method for better handling some data loss scenarios.
  • AddedFactory, StateMachine and Performer properties to context classes to avoid injecting services.
  • Added – Allow to pass transaction to background job state changer when new methods implemented.
  • Added – Optional ParametersSnapshot property for BackgroundJob and JobData classes to minimize roundtrips in future.
  • Changed – Use the AttemptsExceededAction.Delete option by default in the global automatic retry filter.
  • Changed – Move job to the DeletedState instead of SucceededState when its invocation was canceled by a filter.
  • ChangedFromParameterAttribute-based logic now always overwrites arguments, even with non-null values.
  • Changed – Improved display of real-time chart with more accents on failed and deleted jobs.
  • Changed – Ignore some members when serializing a JobFilterAttribute instance to decrease size
  • ChangedServerHeartbeatProcess now uses ThreadPriority.AboveNormal to prioritize heartbeats.

Hangfire.SqlServer

  • Added – Recommended Schema 8 migration with fixed JobQueue.Id column to use bigint type.
  • AddedSqlServerStorageOptions.PreferMicrosoftDataSqlClient option to use the corresponding package.
  • AddedSqlServerStorage.SchemaVersion metric for Dashboard UI.
  • Added – Implement optional experimental transactional acknowledge for SQL Server (UseTransactionalAcknowledge option).
  • Changed – Sliding invisibility timeout-based fetching method is now used by default with 5 minute timeout.
  • Fixed – Ensure connection is released when exception is thrown when during lock release.

Hangfire.NetCore and Hangfire.AspNetCore

  • AddedIApplicationBuilder.UseHangfireServer that accepts custom factory for IBackgroundProcessingServer.

1.7.37

Release Notes

  • Fixed – Recurring job is scheduled to the past after recovering from error with AddOrUpdate (backported).
  • FixedAddOrUpdate triggers execution of a recurring job, even if its next execution is in the future (backported).
  • Fixed – Send heartbeats until full background processing server shutdown (backported).

1.7.36

Release Notes

Hangfire.Core

  • Fixed – Remove job id from schedule when it's not in the Scheduled state for some reason.

Hangfire.NetCore and Hangfire.AspNetCore

  • Changed – Set processing server to null in hosted service to avoid ObjectDisposedException.

1.7.35

Release Notes

Hangfire.SqlServer

  • Fixed – Blocked workers regression since 1.7.28 when using multiple servers inside a process.

1.7.34

Release Notes

Hangfire.Core

  • Added – Add reschedule functionality to BackgroundJob and IBackgroundJobClient (by @​chrischu).
  • FixedArgumentNullException with tricky generic type with inheritance case for jobs.
  • Fixed – Display "Aborted servers will be removed…" note only once aborted threshold passed.

1.7.33

Release Notes

Hangfire.SqlServer

  • Changed – Use SQL Server as a time authority for server heartbeats.
  • Changed – Increase MinPollingDelayMs for SQL Server to 100 milliseconds.
  • Changed – Don't wait on SQL Server's side when using long polling for fetching.

Hangfire.AspNetCore

  • Fixed – Implement support IAsyncDisposable for IServiceScope instances for newer .NET platforms.

1.7.32

Release Notes

Hangfire.Core

  • Added – First version of Swedish translation of the Dashboard UI (by @​karl-sjogren).
  • Changed – More detailed message for exception when JobStorage.Current is not initialized.
  • Changed – Make TypeHelperSerializationBinder class public to use it from custom serializer settings.
  • Fixed – Small typos in French resources for the Dashboard UI (by @​agriffard).
  • Fixed – Document the exception for the IJobCancellationToken interface method (by @​judah4).

Hangfire.NetCore and Hangfire.AspNetCore

  • Changed – Wait for application to be ready before starting the server when using AddHangfireServer.
  • Fixed – Do not return null as result of StopAsync in hosted service implementation (by @​tomaszek92).

1.7.31

Release Notes

Hangfire.Core

  • AddedRecurringJob.TriggerJob method that returns identifier of a triggered background job.
  • AddedRecurringJobManager.TriggerJob as a replacement for the TriggerExecution method.
  • Changed – Update Moment.js library used by Dashboard UI to version 2.29.4 (by @​mmitchell-w).
  • Fixed – Typos in pt-BR translation (by @​gumbarros and @​marcelcamargo).
  • Fixed – Added missing parameter annotations for methods of the RecurringJob class.
  • DeprecatedRecurringJob.Trigger method is now obsolete, TriggerJob is the replacement.
  • DeprecatedRecurringJobManager.TriggerExecution method is now obsolete, TriggerJob should be used instead.

New Contributors

Full Changelog: HangfireIO/Hangfire@v1.7.30...v1.7.31

1.7.30

Release Notes

  • Fixed – Don't consider SecurityException as a non-catchable one.
  • Fixed – Replace timer with a dedicated thread in AspNetShutdownDetector to avoid depending on thread pool.
  • Fixed – Better ASP.NET shutdown detection with yet another check based on internal state.
  • Fixed – Decrease AspNetShutdownDetector's check intervals to detect shutdowns earlier.
  • Fixed – Don't wait for server stop on AppDomain unloads when hosting in IIS to avoid delaying them.

1.7.29

Release Notes

Hangfire.Core

  • AddedRecurringJobManager.TriggerExecution method that returns identifier of a created job.
  • AddedGetRecurringJobIds extension method for JobStorageConnection that returns only identifiers.
  • AddedDashboardMetric.Url property to make it possible for metrics on the Overview page to be clickable (by @​twinmind).
  • Changed – Bump Moment.js version to 2.29.3 in Dashboard UI (by @​Westat-Transportation).
  • Fixed – Deserialization issues with DateOnly and TimeOnly in .NET 6.0 or other new types in CoreLib.
  • Fixed – Don't even try to catch unsafe exceptions like OutOfMemoryException or StackOverflowException.
  • Fixed – Add non-breaking space between Server Id and Status glyph on the Servers page.
  • Fixed – Problems with internal wait implementation shouldn't cause high CPU issues now, added protection and logging.
  • Fixed – Wait can't be performed now on a signaled ManualResetEvent instance in BackgroundExecution.

Hangfire.SqlServer

  • Fixed – Command batching is now fully working for the Microsoft.Data.SqlClient package (by @​0xced).

1.7.28

Release Notes

Hangfire.Core

  • Fixed – Reduce the number of attempts in BackgroundJobStateChanger to avoid infinite loops.
  • Fixed – Typos in German translation (by @​saxx).
  • Fixed – Translations in Turkish translation (by @​can-zengin).

Hangfire.SqlServer

  • Fixed – Possibly fixed CPU consumption problems and high amounts of fetching queries after deploys to IIS.
  • Fixed – No more than a single long-polling query is allowed per storage instance when using sub-second polling.
  • Fixed – Don't depend on thread pool when sending heartbeats for active jobs to avoid problems when it's starved.

1.7.27

Release Notes

Hangfire.Core

  • Added – Turkish language support for the Dashboard UI (by @​csarigul).
  • Fixed – Trigger button in the Dashboard UI doesn't respect a custom time zone resolver.
  • Fixed – Dispatchers stopped when unable to add the ExecutionId data for an exception instance.
  • Fixed – Safari's zoom feature breaks the Dashboard UI (by @​oguzhantopcu).
  • Fixed – Some typos in XML documentation comments (by @​GitHubPang).

1.7.26

Security Patch

This security patch fixes a regression appeared in the previous version 1.7.25 that makes Dashboard UI available for remote requests in the default configuration, e.g. when no authentication filter specified. Please note that when custom authentication filter is defined as recommended in the documentation, everything works as expected, but upgrade is recommended in any case. Please read the GHSA-7rq6-7gv8-c37h security advisory for details.

CVE ID
CVE-2021-41238
Affected Packages
Hangfire.Core = 1.7.25 (only)
Affected Platforms
All, including .NET Core, .NET Framework, Mono of any version

Hangfire.Core

  • Security – Fix "Dashboard UI accessible from outside by default since 1.7.25" regression.

Commits viewable in compare view.

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

---
updated-dependencies:
- dependency-name: Hangfire.AspNetCore
  dependency-version: 1.8.21
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot @github
Copy link
Contributor Author

dependabot bot commented on behalf of github Aug 15, 2025

Assignees

The following users could not be added as assignees: sonicgd. Either the username does not exist or it does not have the correct permissions to be added as an assignee.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot dependabot bot added .NET Pull requests that update .net code dependencies Pull requests that update a dependency file labels Aug 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .net code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant