diff --git a/Sources/App/AppDelegate.swift b/Sources/App/AppDelegate.swift
index b20f3d6c86ce711a5049291b83e19682e934565b..52b3626b8077d2ddefa20b2f76a7e512fee7ad2f 100644
--- a/Sources/App/AppDelegate.swift
+++ b/Sources/App/AppDelegate.swift
@@ -143,8 +143,12 @@ public class AppDelegate: UIResponder, UIApplicationDelegate {
         open url: URL,
         options: [UIApplication.OpenURLOptionsKey : Any] = [:]
     ) -> Bool {
-        if let invitationUsername = getUsernameFromInvitationDeepLink(url) {
-            self.invitation = invitationUsername
+        if let username = getUsernameFromInvitationDeepLink(url),
+           let _ = try? DependencyInjection.Container.shared.resolve() as SessionType,
+           let router = try? DependencyInjection.Container.shared.resolve() as PushRouter {
+            invitation = username
+            router.navigateTo(.search, {})
+
             return true
         } else {
             return dropboxService.handleOpenUrl(url)
diff --git a/Sources/App/DependencyRegistrator.swift b/Sources/App/DependencyRegistrator.swift
index 7c4d70a963f5bfdea10b1c8cc20f2c4a7ccc9953..297f92318be8784d4f769f06b78f6cde3921cdc8 100644
--- a/Sources/App/DependencyRegistrator.swift
+++ b/Sources/App/DependencyRegistrator.swift
@@ -259,6 +259,11 @@ extension PushRouter {
                 launchController.pendingPushRoute = route
             } else {
                 switch route {
+                case .search:
+                    if (navigationController.viewControllers.last as? SearchContainerController) == nil {
+                        navigationController.setViewControllers([SearchContainerController()], animated: true)
+                    }
+
                 case .requests:
                     if (navigationController.viewControllers.last as? RequestsContainerController) == nil {
                         navigationController.setViewControllers([RequestsContainerController()], animated: true)
diff --git a/Sources/LaunchFeature/LaunchController.swift b/Sources/LaunchFeature/LaunchController.swift
index 9eeeb76322911c025810eb2246293ce446ff6af5..0a6a1c651affe95c973a5eb6b5b46a968b5b5a48 100644
--- a/Sources/LaunchFeature/LaunchController.swift
+++ b/Sources/LaunchFeature/LaunchController.swift
@@ -54,6 +54,9 @@ public final class LaunchController: UIViewController {
                 case .chats:
                     if let pushRoute = pendingPushRoute {
                         switch pushRoute {
+                        case .search:
+                            coordinator.toSearch(from: self)
+
                         case .requests:
                             coordinator.toRequests(from: self)
 
diff --git a/Sources/PushFeature/PushRouter.swift b/Sources/PushFeature/PushRouter.swift
index 6fc66797612acf41e56213ab64ffc9a7029d873e..51af8a80ae87cf6bbab518a666256e9925685325 100644
--- a/Sources/PushFeature/PushRouter.swift
+++ b/Sources/PushFeature/PushRouter.swift
@@ -4,6 +4,7 @@ public struct PushRouter {
     public typealias NavigateTo = (Route, @escaping () -> Void) -> Void
 
     public enum Route {
+        case search
         case requests
         case groupChat(id: Data)
         case contactChat(id: Data)