From 1fa945160347704ed6aaf4a38b3b3a9326d89f59 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 23 Mar 2026 11:32:41 +0100 Subject: [PATCH] Change media description length limit for remote media attachments from 1500 to 10000 characters (#37921) --- FEDERATION.md | 1 + app/lib/activitypub/parser/media_attachment_parser.rb | 2 +- app/models/media_attachment.rb | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/FEDERATION.md b/FEDERATION.md index eb91d9545f..d5cd777b69 100644 --- a/FEDERATION.md +++ b/FEDERATION.md @@ -67,3 +67,4 @@ The following table attempts to summary those limits. | Account `attributionDomains` | 256 | List will be truncated | | Account aliases (actor `alsoKnownAs`) | 256 | List will be truncated | | Custom emoji shortcode (`Emoji` `name`) | 2048 | Emoji will be rejected | +| Media descriptions (`name`/`summary`) | 10000 | Description will be truncated | diff --git a/app/lib/activitypub/parser/media_attachment_parser.rb b/app/lib/activitypub/parser/media_attachment_parser.rb index 1f4f43cb15..2212c24c45 100644 --- a/app/lib/activitypub/parser/media_attachment_parser.rb +++ b/app/lib/activitypub/parser/media_attachment_parser.rb @@ -30,7 +30,7 @@ class ActivityPub::Parser::MediaAttachmentParser def description str = @json['summary'].presence || @json['name'].presence - str = str.strip[0...MediaAttachment::MAX_DESCRIPTION_LENGTH] if str.present? + str = str.strip[0...MediaAttachment::MAX_DESCRIPTION_HARD_LENGTH_LIMIT] if str.present? str end diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb index 13ca0d7e3a..c40587748d 100644 --- a/app/models/media_attachment.rb +++ b/app/models/media_attachment.rb @@ -38,6 +38,7 @@ class MediaAttachment < ApplicationRecord enum :processing, { queued: 0, in_progress: 1, complete: 2, failed: 3 }, prefix: true MAX_DESCRIPTION_LENGTH = 1_500 + MAX_DESCRIPTION_HARD_LENGTH_LIMIT = 10_000 IMAGE_LIMIT = 16.megabytes VIDEO_LIMIT = 99.megabytes