diff --git a/src/Core/ServiceCollectionExtensions.cs b/src/Core/ServiceCollectionExtensions.cs
index d351551e68..0af68ce060 100644
--- a/src/Core/ServiceCollectionExtensions.cs
+++ b/src/Core/ServiceCollectionExtensions.cs
@@ -25,23 +25,23 @@ namespace Bit.Core
         {
             services.AddSingleton<ICipherService, CipherService>();
             services.AddScoped<IUserService, UserService>();
-            services.AddScoped<IDeviceService, DeviceService>();
-            services.AddScoped<IOrganizationService, OrganizationService>();
-            services.AddScoped<ICollectionService, CollectionService>();
+            services.AddSingleton<IDeviceService, DeviceService>();
+            services.AddSingleton<IOrganizationService, OrganizationService>();
+            services.AddSingleton<ICollectionService, CollectionService>();
         }
 
         public static void AddDefaultServices(this IServiceCollection services)
         {
             services.AddSingleton<IMailService, SendGridMailService>();
-            services.AddScoped<IPushService, PushSharpPushService>();
-            services.AddScoped<IBlockIpService, AzureQueueBlockIpService>();
+            services.AddSingleton<IPushService, PushSharpPushService>();
+            services.AddSingleton<IBlockIpService, AzureQueueBlockIpService>();
         }
 
         public static void AddNoopServices(this IServiceCollection services)
         {
             services.AddSingleton<IMailService, NoopMailService>();
-            services.AddScoped<IPushService, NoopPushService>();
-            services.AddScoped<IBlockIpService, NoopBlockIpService>();
+            services.AddSingleton<IPushService, NoopPushService>();
+            services.AddSingleton<IBlockIpService, NoopBlockIpService>();
         }
     }
 }
diff --git a/src/Core/Services/Implementations/PushSharpPushService.cs b/src/Core/Services/Implementations/PushSharpPushService.cs
index 652c98079a..7c8af781ed 100644
--- a/src/Core/Services/Implementations/PushSharpPushService.cs
+++ b/src/Core/Services/Implementations/PushSharpPushService.cs
@@ -14,6 +14,7 @@ using Newtonsoft.Json;
 using Microsoft.Extensions.Logging;
 using System.Diagnostics;
 using Bit.Core.Utilities;
+using Microsoft.AspNetCore.Http;
 
 namespace Bit.Core.Services
 {
@@ -21,20 +22,20 @@ namespace Bit.Core.Services
     {
         private readonly IDeviceRepository _deviceRepository;
         private readonly ILogger<IPushService> _logger;
-        private readonly CurrentContext _currentContext;
+        private readonly IHttpContextAccessor _httpContextAccessor;
         private GcmServiceBroker _gcmBroker;
         private ApnsServiceBroker _apnsBroker;
 
         public PushSharpPushService(
             IDeviceRepository deviceRepository,
+            IHttpContextAccessor httpContextAccessor,
             ILogger<IPushService> logger,
-            CurrentContext currentContext,
             IHostingEnvironment hostingEnvironment,
             GlobalSettings globalSettings)
         {
             _deviceRepository = deviceRepository;
+            _httpContextAccessor = httpContextAccessor;
             _logger = logger;
-            _currentContext = currentContext;
 
             InitGcmBroker(globalSettings);
             InitApnsBroker(globalSettings, hostingEnvironment);
@@ -96,9 +97,11 @@ namespace Bit.Core.Services
             };
 
             var excludedTokens = new List<string>();
-            if(!string.IsNullOrWhiteSpace(_currentContext.DeviceIdentifier))
+            var currentContext = _httpContextAccessor?.HttpContext?.
+                RequestServices.GetService(typeof(CurrentContext)) as CurrentContext;
+            if(!string.IsNullOrWhiteSpace(currentContext?.DeviceIdentifier))
             {
-                excludedTokens.Add(_currentContext.DeviceIdentifier);
+                excludedTokens.Add(currentContext.DeviceIdentifier);
             }
 
             await PushToAllUserDevicesAsync(cipher.UserId.Value, JObject.FromObject(message), excludedTokens);
@@ -116,9 +119,11 @@ namespace Bit.Core.Services
             };
 
             var excludedTokens = new List<string>();
-            if(!string.IsNullOrWhiteSpace(_currentContext.DeviceIdentifier))
+            var currentContext = _httpContextAccessor?.HttpContext?.
+                RequestServices.GetService(typeof(CurrentContext)) as CurrentContext;
+            if(!string.IsNullOrWhiteSpace(currentContext?.DeviceIdentifier))
             {
-                excludedTokens.Add(_currentContext.DeviceIdentifier);
+                excludedTokens.Add(currentContext.DeviceIdentifier);
             }
 
             await PushToAllUserDevicesAsync(folder.UserId, JObject.FromObject(message), excludedTokens);