rss feed Releases

Hangfire 1.7.23

Maintenance release that resolves the NotImplementedException exception in the EnlishPromotableSinglePhase method when running on Mono, makes IdempotentCompletionAttribute work regardless of the current serializer settings and also fixes some other minor issues.

Continue Reading →

Hangfire.Pro 2.3.0

It is now possible to add batch continuations with new OnlyOnCompletedState and OnlyOnDeletedState options. The BatchContinuationOptions enum now allows to specify multiple values, so it is possible to mix different options to create a continuation that fire in multiple cases. For example continuations with OnlyOnSucceededState | OnlyOnCompletedState option specified will only be executed once antecedent batch is either succeeded or completed – but not deleted, e.g. canceled.

Continue Reading →

Hangfire.Pro.Redis 2.8.9

This maintenance release adds more logging only, but now almost every exception that occurs inside StackExchange.Redis package is logged with the DEBUG log level. So internal errors can be tracked now much faster than before.

Continue Reading →

Hangfire 1.6.30

Maintenance release for 1.6.X branch with some fixes backported from recent 1.7.X versions, including a fix for possible connection leak in Hangfire.SqlServer when an exception is thrown while releasing a distributed lock.

Continue Reading →

Hangfire.Pro.Redis 2.8.8

This is a maintenance release that increases reliability after failovers when using older Redis version with asynchronous replication enabled.

Continue Reading →

Hangfire 1.8.0 Betas

Hangfire 1.8.0-beta2 and beta1 recently released. The new versions bring a lot of improvements to create more complex workflows with new continuation options, improve role of the DeletedState that now has its own exception information and displayed on graphs when supported by an underlying storage, bring more methods for underlying abstractions to reduce the number of round-trips to a storage and other features as well. Also this version has better defaults for Hangfire.SqlServer package, and sliding invisibility timeout option will now be used by default.

Continue Reading →

Hangfire.Pro.PerformanceCounters 2.2.4

This release fixes problems with missing performance counter instances in Performance Monitor due to changed instance naming rules in Microsoft.Owin.* packages of version 3.X and the absence of instance name sanitization.

Continue Reading →

Hangfire 1.7.21 and 1.7.22

This release bumps package versions referenced by Dashboard UI and fixes a possible reason for non-disposed SqlConnection instances in Hangfire.SqlServer storage when distributed lock release throws an exception (possible when using DisableConcurrentExecution filter with long-running jobs).

Continue Reading →

Hangfire 1.7.20

This maintenance release adds Norwegian translation, fixes problem with changing time zone of a recurring job, contains improvements for .NET Core integration and fixes Schema 6 migration (for those who didn’t apply it yet) that modifies the last Id column that’s still based on Int32 type, to use Int64 instead.

Continue Reading →

Hangfire.Pro.Redis 2.8.6

General improvements for Hangfire.Pro.Redis with better error messages that contain actual problem (for example “No such host is known” instead of “SocketFailure on PING”), eliminated last bits of thread pool usage when using synchronous methods (so everything will be stable now when thread pool threads are busy) and other fixes.

Continue Reading →

Hangfire.Throttling 1.3.0


Hangfire 1.7.19


Hangfire.Pro.Redis 2.8.5

This is an important maintenance release that fixes regressions appeared in version 2.8.0. Please consider upgrading especially if you are using batches with 25,000 background jobs and more.

Continue Reading →

Hangfire.Pro.Redis 2.8.4

The RedisStorageOptions.MaxStateHistoryLength option is added in this release to limit the number of state history entries and avoid storage leak when some background job is rescheduled again and again. By default, only 10 state history entries are now persisted, but this value can be configured with the new option.

Continue Reading →

Hangfire 1.7.18

This release contains a new option SqlServerStorageOptions.DeleteExpiredBatchSize to let expiration manager delete more expired records in a single pass when processing workload is large enough.

Continue Reading →

Hangfire.Pro.Redis 2.8.3

This version fixes regression appeared in 2.8.0 which leads to occasional SemaphoreFullException exception when distribute lock can’t be obtained and timeout exception should be thrown instead. Also the RelyOnInternalReconnects experimental option was added to test less aggressive reconnection logic built into SE.Redis package.

Continue Reading →

Hangfire 1.7.17

This maintenance release only fixes a regression appeared in Hangfire 1.7.15 when using SQL Server 2008 or SQL Server 2008 R2, related to changed queries for “upsert” operations.

Continue Reading →

Hangfire 1.7.16

This release addresses a blocking issue appeared in version 1.7.9, where workers were unable to pick up new jobs when application is using multiple SQL Server storage instances in the same process with same queue names for each storage.

Continue Reading →

Hangfire.Pro 2.2.3

This release fixes possibly hanging continuations for background jobs which belong to a canceled batch. Problem was caused by wrong execution order between BatchSupport and ContinuationsSupport filters, and the former now runs before the latter to give it a chance to recognize antecedent background job was deleted.

Continue Reading →

Hangfire.Pro.Redis 2.8.1 & 2.8.2

These are maintenance releases that fix blocking issues appeared in version 2.6.0 when using multiple RedisStorage instances in the same process with the same queue names, avoid sharing the same semaphore for different storages when using distributed locks, add RedisStorageOptions.UseLegacyTransactions option to avoid using LUA-based transactions and add experimental Hangfire.Pro.Redis.SEv2 package based on StackExchange.Redis 2.X.

Continue Reading →

Hangfire 1.7.15

This release adds the IGlobalConfiguration.UseMaxLinesInExceptionDetails option to cap exception details when background jobs fail with an exception and forces only the first 100 lines of a stack trace to be persisted by default to avoid uncontrollable storage size growth. Also some improvements for SQL Server storage were added.

Continue Reading →

Hangfire.Pro.Redis 2.8.0

This version contains the most important changes for request/response processing pipeline since version 2.1 in terms of performance. LUA scripting feature is now used to implement transactions with proper locking, and it is much more efficient than the previous implementation based on conditional transactions. Less round-trips, reduced impact caused by latency, optimized distributed locks and better fetching from multiple queues makes this release so important, especially when using the package in a cloud environment.

Continue Reading →

Hangfire 1.7.14

New version fixes a regression appeared in 1.7.13 which causes unexpected duplicate entries in the JobParameters table when using SQL Server as a job storage with older schemas (V5 and below). This problem is caused by a changed query in the previous version, and that change is rolled back now. No other manual steps required to fix the issue.

Continue Reading →

Hangfire.Throttling 1.2.0

New release brings support to detach background jobs from mutexes and semaphores without changing their state. New buttons added to the Dashboard UI, and new methods added to the ThrottlingManager class (but not to the interface to avoid breaking changes) to support the new feature.

Continue Reading →

Hangfire.Pro.Redis 2.7.6

This version adds support for authenticating with username available in Redis 6 to use ACL support. Just add username= or user= option to your connection string, and you’ll be able to use the same Redis instance for multiple tenants with proper data isolation between them.

Continue Reading →

Hangfire 1.7.13


Hangfire.Pro.Redis 2.8.0-beta1

The new pre-release version brings significantly improved command pipeline with less stalls due to the absence of conditional transactions (now using LUA scripting instead of them), less round-trips to Redis, decreased latency when obtaining distributed locks and optimized fetching from multiple queues using a single command. These changes heavily increase the throughput especially when using Redis in a cloud environment or using complex features in Hangfire.

Continue Reading →

Hangfire.Pro.Redis 2.7.5

This is a maintenance release that fixes some connectivity problems that may occur in corner cases, such as cluster fail-over and connection timeouts.

Continue Reading →

Hangfire 1.7.12

French translation added in this patch release (thank you @PaulARoy!), and now full absent type or method details will be shown in the Job Details page instead of the “Can not find the target method” error message. It turns out there was a simple and non-breaking implementation for this important improvement I could find for a long time. Some help from the storage is needed for this change to work, and Hangfire.SqlServer 1.7.12 and Hangfire.Pro.Redis 2.7.4 already provide it.

Continue Reading →

Hangfire.Throttling 1.1.1

This is a small feature release to add human-readable descriptions for throttlers. So we can specify descriptions when creating a throttler instead of having really long identifiers, and see them in Dashboard UI. Also some minor problems fixed in this release.

Continue Reading →

Hangfire.Pro.Redis 2.7.3

This is yet another maintenance release that allows to turn off certificate revocation checks when using SSL/TLS.

Continue Reading →

Hangfire.Pro.Redis 2.7.2

Maintenance update for Hangfire.Pro.Redis package that comes with some fixes, including NullReferenceException in “Processing Jobs” page and possible client timeouts during peak loads when working with Redis Cluster.

Continue Reading →

Hangfire.Pro.Redis 2.7.0 & 2.7.1

This version brings a new method of parsing responses from Redis in .NET Core that works well even if CLR’s thread pool is starved. Dedicated reader threads now used for this purpose when running on Linux or macOS, but on Windows thread pool’s I/O threads now used instead to avoid spawning additional threads, since I/O threads work fine there. So upgrades are great for all of the operating systems.

Continue Reading →

Hangfire 1.7.11 & 1.6.29

These versions contain important fixes for the whole processing pipeline, including fire-and-forget, delayed and recurring jobs in the presence of custom extension filters that can throw exceptions. Also a built-in support for reliable shutdown detection of ASP.NET applications was added to the Hangfire.Core package to prevent running old code base when the new one is already deployed. And recurring jobs page in 1.7.11 now displays all the exceptions that prevent a particular recurring job from being scheduled.

Continue Reading →

Hangfire.Pro 2.2.2

This is a maintenance release that fixes serialization exception when trying to create a job continuation for batch in a batch continuation, disallows caching “JobStorage.Current is null” exceptions and let us to configure maximum number of entries for final batch state lists.

Continue Reading →

Hangfire.Pro.Redis 2.6.2

This release is unrelated to the previous ones and fixes wrong behavior when non-recommended max-memory policy is used in Redis, such as volatile-* one. I still don’t recommend to use other than noeviction policies, but at least the following case is handled better.

Continue Reading →

Hangfire.Pro.Redis 2.6.0 & 2.6.1

The new version brings a lot of improvements to the internal implementation of Hangfire.Pro.Redis itself and its underlying Redis client – ability to use multiple connections within the same storage, improved request/response processing pipeline, TLS 1.2 enabled by default for encrypted connections and other improvements and fixes.

Continue Reading →

Hangfire.Dashboard.Authorization 3.0

The new version contains authorization filters based on the non-obsolete IDashboardAuthorizationFilter interface appeared in Hangfire 1.6.0 (so it doesn’t work on previous versions), adds support for custom crypto-providers for Basic Authentication and fixes issues with wrong AssemblyFileVersion attribute.

Continue Reading →

Hangfire.Pro.Redis 2.5.2—2.5.5

These versions contain important fixes for Redis-based job storage implementation, including better handling of fail-over events in clustered environments, reduced number of timeout exceptions and better reliability for distributed locks.

Continue Reading →

Hangfire 1.7.9

New version contains important changes for Hangfire.SqlServer package, fixing a possible DbConnection leak after a database was taken offline and reducing the database load when sub-second polling interval is used. There are also some minor improvements for the Dashboard UI.

Continue Reading →

Hangfire 1.7.8

This version contains improvements for recurring jobs, support for Microsoft.Data.SqlClient package, experimental ability to use background job results in continuations (after calling the IGlobalConfiguration.UseResultsInContinuations extension method), even better integration with .NET Core 3.0 and bunch of other fixes.

Continue Reading →

Hangfire 1.7.7

This is a maintenance release that contains useful enhancements for Dashboard UI, support for command batching even in .NET Core when using System.Data.SqlClient 4.7.0 and higher, support for the Microsoft.Data.SqlClient package in Hangfire.SqlServer (postponed to 1.7.8) and other minor changes.

Continue Reading →

Hangfire 1.7.6

This is yet another maintenance release with added support for dashes in queue names (thanks, @augustoproiete), better recurring job error messages in Dashboard UI and some other useful fixes.

Continue Reading →

Hangfire 1.7.5

This is a maintenance release that provides better handling of recurring job scheduling errors, clearly shows when there are problems with fetching statistics in Dashboard UI (thanks, @prochnowc!), doesn’t infinitely caches IBackgroundJobClient and IRecurringJobManager instances that throw JobStorage.Current is null exceptions, and also adds the AddHangfireServer overload with options-based callback.

Continue Reading →

Hangfire.Pro 2.2.1

This release fixes occasional timeout exceptions that occur when attaching nested batch continuations for nested batches that are currently processed. The exception occurred due to a deadlock caused by different batch lock acquisition order when nested batches are involved.

Continue Reading →

Hangfire 1.7.4

This is a maintenance release that contains important fixes for the Hangfire.SqlServer package to avoid deadlocks if you have long-running jobs, improvements for background process dispatch loop’s implementation, and also an interesting experimental feature that can transparently make background job creation resilient to transient exceptions by using idempotent retries.

Continue Reading →

Hangfire.Pro 2.2.0

This is a maintenance release that plays better with recently released Hangfire 1.7, so you don’t get extra framework packages when targeting .NET Core or .NET Standard 2.0. Also, continuation filters now don’t throw an exception again and again, when continuation has already expired.

Continue Reading →

Hangfire 1.7.3 and 1.6.26

This version contains security fixes to prevent possible XSS attacks as described in #1441. They don’t relate to user data submitted to Hangfire directly via method arguments, but it’s recommended to upgrade anyway. If you are using Hangfire 1.6, please upgrade to version 1.6.26 instead.

Continue Reading →

Hangfire 1.7.2

This patch release contains stability improvements for recurring jobs, better handling of custom time zone resolvers in Dashboard UI and other minor fixes. If you are upgrading from 1.6.X, please see Upgrading to Hangfire 1.7 article to learn the details.

Continue Reading →

Hangfire.Pro.Redis 2.5.1

This version brings support for Mono on Linux and macOS platforms without the need to reference additional packages. On Windows, both .NET Framework and .NET Standard 2.0 now use the same methods for polling a socket for new data, to make the behavior consistent across platforms.

Continue Reading →

Hangfire 1.7.1

This is a patch release that adds some nice features for Dashboard UI, knows how to deal with recurring jobs with invalid Cron expressions, and contains some minor improvements for SQL Server storage. Also, Hangfire.NetCore package was added to support new .NET Core Worker Service applications without referencing any ASP.NET Core packages.

Continue Reading →

Hangfire 1.7.0

Hangfire 1.7.0 is finally released with the whole bunch of new features and improvements for background processing, background and recurring jobs, SQL Server storage, .NET Core integration and interoperability between .NET platforms to provide a strong foundation for future features and extensions.

Continue Reading →

Hangfire 1.7.0 RC

This is a release candidate for the upcoming version 1.7.0 with a lot of new features and improvements for almost all the aspects of background job processing. Below you’ll find a short list of them as well as upgrade details, and more information will be published later. Please note this is a pre-release, and it’s not suitable for critical environments.

Continue Reading →

Hangfire 1.6.23

This version fixes some issues and acts as an optional trampoline to the upcoming 1.7.0 release to simplify the rolling upgrades. So your current servers will work side-by-side with the newer ones even if you are using SQL Server as a job storage and applied the new migration. There will be more information on upgrading, but this version is nice-to-have (but not required) anyway.

Continue Reading →

Hangfire.Pro.Redis 2.4.0

This is an important release that makes timeout detection much more robust. First of all, Redis server itself now acts as a single time authority for performing timeout checks for both jobs and servers rather than UTC time of a current Hangfire Server. So you don’t need to use synchronized clocks to prevent false positives for timeout checks.

Continue Reading →

Hangfire 1.6.22

This version finally fixes interoperability issues that arise, because primitive built-in types like String reside in assemblies with different name in .NET Core (System.Private.CoreLib.dll) and .NET Framework (mscorlib.dll). This led to JobLoadException in .NET Framework-based applications, when they tried to perform background jobs created by a .NET Core-based one. The new version solves this problem by re-writing assembly name when resolving a type for a job and its parameters.

Continue Reading →

Hangfire.Pro 2.1.2

This release fixes unexpected behaviors when we are cancelling a batch that has continuations for its inner items as in the following sample. When those continuations have continuations themselves, or when we attaching a job with continuation to a cancelled batch, our leaf-level continuations stuck in the awaiting or non-initialized state until queued manually.

Continue Reading →

Hangfire 1.6.21

This are late release notes for a maintenance release with minor fixes. Please see the list of fixed issues below and upgrade if necessary.

Continue Reading →

Hangfire.Pro.Redis 2.3.0

The goal of this release is to resolve the timeout issues that appear in .NET Core 2.X applications. Such behavior was caused by networking implementation of SE.Redis, which posted Redis response processing logic to thread pool’s worker threads, instead of completion ports or custom threads, due to the lack of the corresponding API in netstandard1.X specification.

Continue Reading →

Hangfire 1.6.20

This release contains fixes for security issues related to dashboard, so it is highly recommended to upgrade. Cross-Site Request Forgery protection was added by using existing libraries, but methods are different across application frameworks:

Continue Reading →

Hangfire.Pro 2.1.1

This maintenance release fixes race condition in the UseBatches method that can lead to the InvalidOperationException with “Batches are not initialized” message.

Continue Reading →

Hangfire 1.6.19

This release fixes a regression appeared in 1.6.18 as well as contain some improvements for the Hangfire.SqlServer package.

Continue Reading →

Hangfire 1.6.18

This release contains a lot of fixes, but the most important ones are related to .NET Core and ASP.NET Core frameworks. Filters based on attributes are now working fine there, and DisplayName decoration will finally bring the human-ready name for your jobs. Other fixes are mostly related to dashboard.

Continue Reading →

Hangfire.Pro.Redis 2.2.0

This release solves connectivity issues with Redis Cluster 4.X, appeared as a result of breaking changes introduced in Redis 4.0.

Continue Reading →

Hangfire 1.6.17

This release contains important improvements when SQL Server is used as a job storage. Distributed locks are much more robust now even when there are significant connectivity issues (like those sometimes happen in Azure or other cloud environments) and require much fewer connections to SQL Server. Another improvement is related to a new option that allows transactions to be committed with fewer round-trips.

Continue Reading →

Hangfire 1.6.16

This is yet another maintenance release that fixes a bunch of non-critical bugs in Hangfire.Core and Hangfire.SqlServer packages.

Continue Reading →

Hangfire.Pro 2.1.0

This release brings full support for continuations in batches, including the nested ones. Now you can create continuations within a batch even for jobs or batches in nested batches. Consider the following sample:

Continue Reading →

Hangfire 1.6.15

This release contains important fixes for the Hangfire.SqlServer package, which is actively using the sp_getapplock stored procedure to synchronize work between different servers. I’ve realized that locks shouldn’t be awaited on SQL Server’s side, because this may lead to SQL Server’s connection pool starvation, because each blocked request will block a single worker thread.

Continue Reading →

Hangfire 1.6.14

This versions adds possibility to use non-transactional message fetching algorithm when using Hangfire.SqlServer package. This is especially helpful, if you have a lot of long-running background jobs, since they may prevent you from taking transaction log backups, leading to the Transaction log is full due to ‘ACTIVE_TRANSACTION’ error.

Continue Reading →

Hangfire 1.6.13

This release contains a bunch of fixes for core and integration packages. The most important updates are fix for SQL connection leaks when we failed to acquire a distributed lock, and wrong queue selection, when continuation is created after antecedent job is finished. So upgrade is recommended.

Continue Reading →

Hangfire.Pro.Redis 2.1.1

This is a minor update that fixes VS Code debugger crash on OS X, and don’t report ThreadAbortException as fatal. You can update only if these issues annoys you.

Continue Reading →

Hangfire.Pro 2.0.1

Another bug related to forever incomplete batches has been fixed. This bug existed for a long time, so I’d recommend anyone to upgrade.

Continue Reading →

Hangfire.Pro 2.0.0

This release contains the most amazing update to the batches feature. Now you can create nested batches, attach jobs or batches to an existing batch, regardless of its current state, and lazily cancel running batches. Also, you can create job continuation for batch, and batch continuation for job. These feature allows you to build powerful workflows on top of Hangfire with ease.

Continue Reading →

Hangfire.Pro.Redis 2.1.0

Redis Cluster is finally supported. Also improved connection resilience using custom connection loop, upgraded StackExchange.Redis to the latest version and fixed some nasty bugs. So I’d recommend to upgrade, especially if you are using Redis in cloud environments.

Continue Reading →

Hangfire.Pro 1.4.10

​There was a lack of distributed lock during the batch creation phase. If an antecedent batch succeeded just after adding a batch continuation (continuations:finished set), but before the continuation was created, antecedent batch was silently ignoring the fact that continuation does not exist yet. ​I’ve added a required distributed lock, and taught a state filter related to continuations to throw an exception, when continuation doesn’t exist.

Continue Reading →

Hangfire.Pro.Redis 2.1.0-beta1

Finally Redis Cluster is officially supported by Hangfire.Pro.Redis package, and correctly handles the corner cases of Redis’ async replication. I was able to implement it without requiring RedLock algorithm, regular WATCH commands are used to ensure distributed lock correctness.

Continue Reading →

Hangfire.Pro 1.4.9

This is a correcting release that mainly fixes regression related to dashboard, appeared in the previous version.

Continue Reading →

Hangfire.Azure.ServiceBusQueue 2.2.0

A recommended upgrade for all users to improve the reliability and accuracy of the service bus integration:

Continue Reading →

Hangfire 1.6.12

This release brings better exception handling policy for state changing pipeline. Previously, non-transient exception in a state filter could cause a worker to perform retries for affected background job infinitely. And a large number of such background jobs could stall the processing.

Continue Reading →

Hangfire 1.6.11

This release fixes a problem with CSS and JS files in dashboard appeared in 1.6.10, as well as corrects the authorization behavior, when the User property is null.

Continue Reading →

Hangfire 1.6.10

This is a maintenance release that contains fixes for job continuations and some dashboard issues related to Content Security Policy and recurring jobs page. It’s highly recommended to upgrade to prevent problems with continuations. They are rare, but lead to significant headache.

Continue Reading →

Hangfire.Pro 2.0.0-beta2


Hangfire 1.6.9

This is a small correcting release that make it possible to have a workaround for TimeoutException exceptions when using SQL Server with huge arguments or batches. The SqlServerOptions.CommandTimeout option was added to allow to override the default timeout of 30 seconds.

Continue Reading →

Hangfire Pro 1.4.8

This release contains a bunch of fixes for batches, and is recommended for anyone who use them. Batches now always created in a correct state (Started, Completed or Succeeded), depending of state of its jobs. This is the most important change that fixes weird problems with batches that hanging forever.

Continue Reading →

Hangfire 1.6.8


Hangfire.Pro.Redis 2.0.6

This is a correcting release that fixes Server.StartedAt field reset problem during each server heartbeat, which lead to confusion that servers are constantly restarted, when watching the Servers page. It also adds missing GetValueFromHash method required by popular Hangfire.Console extension.

Continue Reading →

Hangfire.Pro.Redis 2.0.5

This is a maintenance release that add support for Hangfire.Core 1.4.0 for conservative users who are planning to switch to use a more stable StackExchange.Redis client package, but don’t want to upgrade Hangfire.Core. Originally this package supported only ≥ 1.5.0 versions.

Continue Reading →

Hangfire 1.6.7

This is a correcting release that brings fixes to fully support generic methods, whose generic arguments are defined in their parameters, including List<T> and T[]. A lot of issues with Dashboard UI that cause exceptions and other errors, like uncontrolled growth of event listeners on resize, were also fixed. Please see the full delails below.

Continue Reading →

Hangfire.Pro.Redis 2.0.4

This is a maintenance release that fixes ArgumentNullException that appears in Dashboard UI and during a call to the RedisMonitoringApi.Servers method, when BackgroundJobServer instance was resurrected. Resurrection happens when a server was removed from active servers list due to network problems, but then appeared again.

Continue Reading →

Hangfire.Pro.Redis 2.0.3

This release adds an option that explicitly allows using multiple endpoints in the connection string, but it’s not recommended. Use it at your own risk! Here’s a small explanation:

Continue Reading →

Hangfire 1.6.6

This is a correcting release that fixes a regression, when using generic methods of a scoped variable in expression for background jobs, as well as some minor optimizations for SQL Server. It also adds CLS compliance for basic packages, since public API is already compliant. Boring release, nothing interesting here.

Continue Reading →

Hangfire.Pro.Redis 2.0.2

This release brings us a single package that targets both .NET Framework and .NET Core, so there’s no need to use separate packages now. It also fixes a rare issue, when a timed out background job stays in the processing set indefinitely, causing dashboard exceptions.

Continue Reading →

Hangfire 1.6.5

This correcting release contains a lot of stability improvements for Hangfire.SqlServer, especially for SQL Azure Database environments. Processing is now more predictable even in Basic pricing tier, there is a special harness application that’s running 24/7 to ensure everything is fine. Some problems related to I18N, authorisation and continuations were also fixed.

Continue Reading →

Hangfire 1.6.4

This release fixes a problem that caused SqlConnection instance to leak when nested distributed locks are acquired for the same resource. If you are using batches, or continuations, and SQL Server as a storage, it is highly recommended to upgrade to prevent connection pool starvation and timeout exceptions.

Continue Reading →

Hangfire 1.6.3

This is a maintenance release that contains fixes for several bugs. It is highly recommended to upgrade to this version, if you are using Hangfire.SqlServer. Thanks to all folks who helped with reporting and investigating these issues!

Continue Reading →

Hangfire.Pro.Redis 2.0

Brand new version of Hangfire.Pro.Redis is finally available. It is now based on feature-rich StackExchange.Redis library, allowing us to bring Hangfire to more environments that use Redis storage in the near future. This version comes with some new features, including SSL support and highly reduced connection usage.

Continue Reading →

Hangfire Pro 1.4.6

This version fixes different problems, that caused batches and batch continuations appear with no background jobs under rare circumstances. Also, background jobs now have the same expiration time with the batch itself. It is highly recommended to upgrade, if you are using batches.

Continue Reading →

Hangfire 1.6.2

This correcting release contains important fixes for SQL Server and MSMQ integrations, as well as some cosmetic changes to the Dashboard UI. Major blocking problem was resolved, when using Hangfire with SQL Server, that may cause a lot of blocking records in the State table, preventing background processing from working flawlessly, when expired records are removed from a database – Database Engine didn’t use the right index during the query performance.

Continue Reading →

Hangfire 1.6.1

This is a correcting release that fixes a couple of problems, including exception when using Serilog (appeared in 1.6.0), wrong CRON format strings for intervals, and ones that relate to the .NET Core platform. They were revealed by adding support to continuously run unit tests on Windows, Linux and OS X for the .NET Core using AppVeyor and Travis CI.

Continue Reading →

Hangfire 1.6.0

Hangfire 1.6 just released with experimental .NET Core platform support, deep integration with ASP.NET Core and async/await programming model support. Start processing background jobs with ease even on Linux and OS X today!

Continue Reading →

Hangfire 1.5.9

This release contains major bug fixes, and is very recommended to upgrade. In short, OperationCanceledException doesn’t cause background processing to stop now. Dashboard UI doesn’t leak READ UNCOMMITTED isolation level, and READ_COMMITTED_SNAPSHOT option doesn’t lead background jobs to stuck in Enqueued state.

Continue Reading →

Hangfire 1.5.8

This release fixes a bug appeared in version 1.5.6 of the Hangfire.SqlServer package. There was a race condition between the Timer and Worker threads, that causes the following problems, especially when small background jobs are processed.

Continue Reading →

Hangfire 1.6.0-beta3

Third beta of the upcoming 1.6 release. Contains a fix for a bug introduced in the previous beta, related to inability to add custom filters, as well as fixes from the recent 1.5.7 version.

Continue Reading →

Hangfire 1.5.7

This is a correcting release that contains a fix for Dashboard UI crashes when using MSMQ (finally, thanks @yangman for this!), as well as some other minor fixes.

Continue Reading →

Hangfire.Pro.Redis 2.0.0-beta1


Hangfire Pro 1.4.5

This release fixes distributed locks in Hangfire.Pro.Redis that didn’t take the Prefix option into account. This may result in problems and different timeout when a single Redis instance is used for a bunch of applications with separate code base.

Continue Reading →

Hangfire 1.6.0-beta2

This is the second beta of upcoming the 1.6 release. It contains some new features, but most importantly, it incorporates bug fixes released with recent 1.5.5 and 1.5.6 versions related to SQL Azure and recurring jobs, please see them for more details.

Continue Reading →

Hangfire 1.5.6

This release fixes an issue related to SQL Azure and background jobs, running more than 30 minutes. The problem is caused by Azure Database Engine which closes idle connections after 30 minutes of inactivity. Hangfire now periodically sends “keep-alive” queries to prevent this.

Continue Reading →

Hangfire 1.5.5

This is a correcting release that fixes a problem with recurring jobs. It is related to a possible misfire on a first run, if a background processing server was inactive during the scheduled time.

Continue Reading →

Hangfire 1.6.0-beta1

This is the first beta of an upcoming 1.6 release. Added support for async background job methods, ability to access context when creating an IoC container scope, dashboard with i18n support, redesigned Job Details page and zero latency for simple setup with SQL Server.

Continue Reading →

Hangfire 1.5.4

This is a correcting release that is highly recommended to install. It fixes issue related to daylight savings in recurring jobs, and prevents infinite loop when changing state of a background job that doesn’t exists (for example, when deleting a job).

Continue Reading →

Hangfire Pro 1.4.4

This release fixes an issue with batch continuations, and is recommended for anyone who use them. The issue takes place, when a parent batch unable to complete within 1 hour, after which batch continuation may start with no jobs, because all of them were expired.

Continue Reading →

Hangfire Pro 1.4.3

This release fixes Could not find type Hangfire.Batches.States.BatchAwaitingState exception appeared after upgrading from Hangfire Pro 1.4.0 or 1.4.1 when using batch continuations. Previous release solved the issue partly, and didn’t cover those who just updated from versions listed above.

Continue Reading →

Hangfire 1.5.3

This is a recommended update for all users of Hangfire.SqlServer. It addresses to fix a bug presented in version 1.5.0, associated with incorrect acquiring/releasing of distributed locks after network problems, that may lead to Cannot release the application lock exceptions and other issues related to synchronization.

Continue Reading →

Hangfire.Pro.Redis 1.4.2

This release fixes a security issue that caused Redis password leaks to log targets during the Hangfire Server startup. The password was also shown in dashboard. If you are using password-protected Redis, it is highly recommended to update to this release, and change Redis password.

Continue Reading →

Hangfire 1.5.2

This is a hotfix for Hangfire 1.5.1 users. If you are using one of previous versions, you are unaffected by this bug.

Continue Reading →

Hangfire 1.5.1


Hangfire Pro 1.4.0

New versions of Hangfire Pro packages released to be compatible with Hangfire 1.5.0 version. Background jobs in batches now performing slightly faster, and Redis transaction scope was reduced to the Commit method, allowing to query for data from apply state filters.

Continue Reading →

Hangfire 1.5.0

Finally after 4 months of development and after 4 betas, Hangfire 1.5.0 released. Now you are able to customize your background processing pipeline even more, by using many types that were internal in previous versions. More responsive dashboard, IoC container scopes, support for remote MSMQ queues and other cool features are waiting for you!

Continue Reading →

Hangfire 1.4.7

This is a correcting release that fixes problems with TaskCanceledException thrown by a job method as well as issue with MSMQ extension, when background jobs are created within a TransactionScope block.

Continue Reading →

Hangfire 1.5.0-beta3

Version 1.5.0 will open many types that were internal in previous versions of Hangfire, like Worker or IBackgroundFactory, to enable you to have completely custom background processing. This release simplifies the usage of these types, of course only to decrease the amount of questions on forums :smiley:.

Continue Reading →

Hangfire 1.4.6

This is a maintenance release that fixes deadlocks in expiration manager, SQL command timeouts in distributed locks (and in the DisableConcurrentExecution filter) and correctly handles poison messages in a schedule.

Continue Reading →

Hangfire Pro 1.3.1

This is a correcting release that fixes a race condition related to batch continuations and slightly improves performance of a batch job processing, especially when using SQL Server. It is strongly recommended to upgrade.

Continue Reading →

Hangfire 1.5.0 Beta

This is a pre-release version that adds a lot of great new features for Hangfire requested by you, including background processes, built-in support for custom scopes in IoC containers, queues for recurring jobs and much more!

Continue Reading →

Hangfire 1.4.5

This is a correcring release that fixes NotSupportException: This stream does not support seek operations bug added in 1.4.4. This exception is raised on all unbuffered HTTP POST requests to the Dashboard.

Continue Reading →

Hangfire 1.4.4


Hangfire Pro 1.3.0

This release makes some hard-coded values (like maximum succeeded job list length) configurable through the RedisStorageOptions class. It also helps to re-queue aborted background jobs earlier – instead of waiting for invisibility timeout after non-graceful shutdown, we are re-queueing aborted background jobs right after its server becomes inactive.

Continue Reading →

Hangfire 1.4.3

This is a correcting release that allows Hangfire to work with databases with case-sensitive and binary collations and fixes some other problems. Integration tests now are running against a case-sensitive database to reduce the probability of a mistake.

Continue Reading →

Hangfire Pro 1.2.2

This is a correcting release that fixes job prioritization via queue ordering in an instance of the BackgroundJobServerOptions class and adds support for symbol packages.

Continue Reading →

Hangfire 1.4.2


Hangfire Pro 1.2.0

After a long development, batches and batch continuations are completed, and I’m glad to introduce these features. It was a real challenge for me and for Hangfire to implement these features as a regular extension. If you don’t share my joy (Batches? Why I need them?), I’ll show you why they are so important.

Continue Reading →

Hangfire 1.4.0

About 4 months passed since release of version 1.3, and I’m pleased to introduce the next major release – Hangfire 1.4 with a lot of new features added and a lot of stability improvements made. This is the most important upgrade since version 1.0.

Continue Reading →

Hangfire 1.4.0 RC2

This is a pre-release version of Hangfire 1.4.0 that is considered to be stable (and it is more stable than 1.3.x). Final version will be released after documentation changes (some awesome features added, please see 1.4.0-beta1).

Continue Reading →

Hangfire 1.4.0 RC1

This is a pre-release version of Hangfire 1.4.0 that is considered to be stable.

Continue Reading →

Hangfire 1.4.0 Beta1

This pre-release contains a lot of new features of an upcoming Hangfire 1.4.0 – continuations, time zone support for recurring jobs, new dashboard ui, new configuration classes.

Continue Reading →

Hangfire 1.3.4

This is a correcting release that fixes hourly/weekly statistics display in Dashboard, and a rare issue when we trying to cancel a recurring job from a client filter.

Continue Reading →

Hangfire 1.3.3

This is a correcting release. Fixed a bug related to MSMQ or RabbitMQ extensions, when enqueued job is not processed and “stuck” in the Enqueued state indefinitely until we retry it manually.

Continue Reading →

Hangfire 1.3.2

This is a correcting release. Expiration manager does not attempt to remove all the records at once now. Instead, it removes them by 1000 at a time, so you won’t experience timeout exceptions anymore. If you had problems with recurring jobs, they were fixed also.

Continue Reading →

Hangfire 1.3.0


Hangfire 1.0.0

Hangfire has finally reached the 1.0 milestone! This means that public API is frozen and considered to be stable. Starting from now, the SemVer 2.0 specification will be used for versioning every package (but there may be exceptions, follow the README for each package).

Continue Reading →

Hangfire 0.9.0


Hangfire 0.8.3


Hangfire 0.8.2


Hangfire 0.8.1


Hangfire 0.8.0