diff --git a/app/services/process_links_service.rb b/app/services/process_links_service.rb index 7b84f1180d..e7dfb64c8e 100644 --- a/app/services/process_links_service.rb +++ b/app/services/process_links_service.rb @@ -28,6 +28,7 @@ class ProcessLinksService < BaseService # TODO: We probably want to resolve unknown objects at authoring time object = ActivityPub::TagManager.instance.uri_to_resource(url.to_s, Collection) + next if object.nil? tagged_object = @previous_objects.find { |x| x.object == object || x.uri == url } tagged_object ||= @current_objects.find { |x| x.object == object || x.uri == url } diff --git a/spec/services/process_links_service_spec.rb b/spec/services/process_links_service_spec.rb index b965470f15..367eaa0177 100644 --- a/spec/services/process_links_service_spec.rb +++ b/spec/services/process_links_service_spec.rb @@ -16,4 +16,13 @@ RSpec.describe ProcessLinksService do .to change { status.tagged_objects.count }.by(1) end end + + context 'when status has a generic link' do + let(:status) { Fabricate(:status, account: account, text: 'Hello check out my personal web page: https://example.com/test', visibility: :public) } + + it 'skips the link and does not create a tagged object' do + expect { expect { subject.call(status) }.to_not raise_error } + .to not_change { status.tagged_objects.count }.from(0) + end + end end