diff --git a/packages/backend/src/core/activitypub/ApDbResolverService.ts b/packages/backend/src/core/activitypub/ApDbResolverService.ts
index 2ae76e5aac..b822f86185 100644
--- a/packages/backend/src/core/activitypub/ApDbResolverService.ts
+++ b/packages/backend/src/core/activitypub/ApDbResolverService.ts
@@ -4,6 +4,7 @@
  */
 
 import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';
+import * as Redis from 'ioredis';
 import { DI } from '@/di-symbols.js';
 import type { MiUser, NotesRepository, UserPublickeysRepository, UsersRepository } from '@/models/_.js';
 import type { Config } from '@/config.js';
@@ -14,11 +15,12 @@ import type { MiNote } from '@/models/Note.js';
 import { bindThis } from '@/decorators.js';
 import { MiLocalUser, MiRemoteUser } from '@/models/User.js';
 import Logger from '@/logger.js';
-import { UtilityService } from '../UtilityService.js';
+import { UtilityService } from '@/core/UtilityService.js';
 import { getApId } from './type.js';
 import { ApPersonService } from './models/ApPersonService.js';
 import { ApLoggerService } from './ApLoggerService.js';
 import type { IObject } from './type.js';
+import { GlobalEvents } from '@/core/GlobalEventService.js';
 
 export type UriParseResult = {
 	/** wether the URI was generated by us */
@@ -54,6 +56,9 @@ export class ApDbResolverService implements OnApplicationShutdown {
 		@Inject(DI.userPublickeysRepository)
 		private userPublickeysRepository: UserPublickeysRepository,
 
+		@Inject(DI.redisForSub)
+		private redisForSub: Redis.Redis,
+
 		private cacheService: CacheService,
 		private apPersonService: ApPersonService,
 		private apLoggerService: ApLoggerService,
@@ -61,6 +66,7 @@ export class ApDbResolverService implements OnApplicationShutdown {
 	) {
 		this.publicKeyByUserIdCache = new MemoryKVCache<MiUserPublickey[] | null>(Infinity);
 		this.logger = this.apLoggerService.logger.createSubLogger('db-resolver');
+		this.redisForSub.on('message', this.onMessage);
 	}
 
 	private punyHost(url: string): string {
@@ -260,9 +266,26 @@ export class ApDbResolverService implements OnApplicationShutdown {
 		this.publicKeyByUserIdCache.delete(userId);
 	}
 
+	@bindThis
+	private async onMessage(_: string, data: string): Promise<void> {
+		const obj = JSON.parse(data);
+		if (obj.channel === 'internal') {
+			const { type, body } = obj.message as GlobalEvents['internal']['payload'];
+			switch (type) {
+				case 'remoteUserUpdated': {
+					this.refreshCacheByUserId(body.id);
+					break;
+				}
+				default:
+					break;
+			}
+		}
+	}
+
 	@bindThis
 	public dispose(): void {
 		this.publicKeyByUserIdCache.dispose();
+		this.redisForSub.off('message', this.onMessage);
 	}
 
 	@bindThis