diff --git a/src/models/repositories/notification.ts b/src/models/repositories/notification.ts
index a8978cc01..b484c43c5 100644
--- a/src/models/repositories/notification.ts
+++ b/src/models/repositories/notification.ts
@@ -46,8 +46,8 @@ export class NotificationRepository extends Repository<Notification> {
 			} : {}),
 			...(notification.type === 'app' ? {
 				body: notification.customBody,
-				header: notification.customHeader || token!.name,
-				icon: notification.customIcon || token!.iconUrl,
+				header: notification.customHeader || token?.name,
+				icon: notification.customIcon || token?.iconUrl,
 			} : {}),
 		});
 	}
diff --git a/src/server/api/define.ts b/src/server/api/define.ts
index 2ee0ba486..1c7ee2647 100644
--- a/src/server/api/define.ts
+++ b/src/server/api/define.ts
@@ -15,12 +15,12 @@ type Params<T extends IEndpointMeta> = {
 export type Response = Record<string, any> | void;
 
 type executor<T extends IEndpointMeta> =
-	(params: Params<T>, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken, file?: any, cleanup?: Function) =>
+	(params: Params<T>, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any, cleanup?: Function) =>
 		Promise<T['res'] extends undefined ? Response : SchemaType<NonNullable<T['res']>>>;
 
 export default function <T extends IEndpointMeta>(meta: T, cb: executor<T>)
-		: (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken, file?: any) => Promise<any> {
-	return (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken, file?: any) => {
+		: (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => Promise<any> {
+	return (params: any, user: T['requireCredential'] extends true ? ILocalUser : ILocalUser | null, token: AccessToken | null, file?: any) => {
 		function cleanup() {
 			fs.unlink(file.path, () => {});
 		}
diff --git a/src/server/api/endpoints/notifications/create.ts b/src/server/api/endpoints/notifications/create.ts
index fed422b64..6267699e9 100644
--- a/src/server/api/endpoints/notifications/create.ts
+++ b/src/server/api/endpoints/notifications/create.ts
@@ -29,7 +29,7 @@ export const meta = {
 
 export default define(meta, async (ps, user, token) => {
 	createNotification(user.id, 'app', {
-		appAccessTokenId: token.id,
+		appAccessTokenId: token ? token.id : null,
 		customBody: ps.body,
 		customHeader: ps.header,
 		customIcon: ps.icon,
diff --git a/src/server/api/stream/index.ts b/src/server/api/stream/index.ts
index 9a6c24746..a5ff56f51 100644
--- a/src/server/api/stream/index.ts
+++ b/src/server/api/stream/index.ts
@@ -18,7 +18,7 @@ export default class Connection {
 	public user?: User;
 	public following: User['id'][] = [];
 	public muting: User['id'][] = [];
-	public token: AccessToken;
+	public token: AccessToken | null | undefined;
 	private wsConnection: websocket.connection;
 	public subscriber: EventEmitter;
 	private channels: Channel[] = [];