diff --git a/CHANGELOG.md b/CHANGELOG.md
index cf59ca7ff861a027fc1c327ff555a5f29128be07..a01ddb061f4bc9620e60c5f95f005f9afadb5df6 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -62,6 +62,7 @@
 - Set Last-Modified header for atom feeds, fixes #2988 ([c18dcde3](https://github.com/pixelfed/pixelfed/commit/c18dcde3))
 - Add instance post/profile embed config setting ([7734dc03](https://github.com/pixelfed/pixelfed/commit/7734dc03))
 - Remove remote posts from NetworkTimelineService when processing Tombstones ([2e4f2377](https://github.com/pixelfed/pixelfed/commit/2e4f2377))
+- Limit NotificationService to 400 items ([f6ed560e](https://github.com/pixelfed/pixelfed/commit/f6ed560e))
 -  ([](https://github.com/pixelfed/pixelfed/commit/))
 
 ## [v0.11.3 (2022-05-09)](https://github.com/pixelfed/pixelfed/compare/v0.11.2...v0.11.3)
diff --git a/app/Http/Controllers/Api/ApiV1Controller.php b/app/Http/Controllers/Api/ApiV1Controller.php
index 68558a3c2c005c15d0da3166c034afb918893176..276b1fb2da550929295d79c510cef03d0bdd4d10 100644
--- a/app/Http/Controllers/Api/ApiV1Controller.php
+++ b/app/Http/Controllers/Api/ApiV1Controller.php
@@ -2449,7 +2449,7 @@ class ApiV1Controller extends Controller
 			'media_ids' => 'sometimes|array|max:' . config_cache('pixelfed.max_album_length'),
 			'sensitive' => 'nullable',
 			'visibility' => 'string|in:private,unlisted,public',
-			'spoiler_text' => 'sometimes|string|max:140',
+			'spoiler_text' => 'sometimes|max:140',
 		]);
 
 		if(config('costar.enabled') == true) {
diff --git a/app/Services/NotificationService.php b/app/Services/NotificationService.php
index cd0044bb7d018b8f404cef49a79f20b4e523d96d..264f9df310d654c03c85b5c85aa3eb1bc3e23e04 100644
--- a/app/Services/NotificationService.php
+++ b/app/Services/NotificationService.php
@@ -194,6 +194,9 @@ class NotificationService {
 
 	public static function set($id, $val)
 	{
+		if(self::count($id) > 400) {
+			Redis::zpopmin(self::CACHE_KEY . $id);
+		}
 		return Redis::zadd(self::CACHE_KEY . $id, $val, $val);
 	}
 
@@ -220,7 +223,7 @@ class NotificationService {
 
 	public static function getNotification($id)
 	{
-		return Cache::remember('service:notification:'.$id, 86400, function() use($id) {
+		$notification = Cache::remember('service:notification:'.$id, 86400, function() use($id) {
 			$n = Notification::with('item')->find($id);
 
 			if(!$n) {
@@ -238,6 +241,16 @@ class NotificationService {
 			$resource = new Fractal\Resource\Item($n, new NotificationTransformer());
 			return $fractal->createData($resource)->toArray();
 		});
+
+		if(!$notification) {
+			return;
+		}
+
+		if(isset($notification['account'])) {
+			$notification['account'] = AccountService::get($notification['account']['id'], true);
+		}
+
+		return $notification;
 	}
 
 	public static function setNotification(Notification $notification)