diff --git a/packages/backend/src/queue/processors/deliver.ts b/packages/backend/src/queue/processors/deliver.ts index 65471a559f..f40029003c 100644 --- a/packages/backend/src/queue/processors/deliver.ts +++ b/packages/backend/src/queue/processors/deliver.ts @@ -1,18 +1,14 @@ -import { URL } from "node:url"; +import {URL} from "node:url"; import request from "@/remote/activitypub/request.js"; -import { registerOrFetchInstanceDoc } from "@/services/register-or-fetch-instance-doc.js"; +import {registerOrFetchInstanceDoc} from "@/services/register-or-fetch-instance-doc.js"; import Logger from "@/services/logger.js"; -import { Instances } from "@/models/index.js"; -import { - apRequestChart, - federationChart, - instanceChart, -} from "@/services/chart/index.js"; -import { fetchInstanceMetadata } from "@/services/fetch-instance-metadata.js"; -import { toPuny } from "@/misc/convert-host.js"; -import { StatusError } from "@/misc/fetch.js"; -import { shouldSkipInstance } from "@/misc/skipped-instances.js"; -import type { DeliverJobData } from "@/queue/types.js"; +import {Instances} from "@/models/index.js"; +import {apRequestChart, federationChart, instanceChart,} from "@/services/chart/index.js"; +import {fetchInstanceMetadata} from "@/services/fetch-instance-metadata.js"; +import {toPuny} from "@/misc/convert-host.js"; +import {StatusError} from "@/misc/fetch.js"; +import {shouldSkipInstance} from "@/misc/skipped-instances.js"; +import type {DeliverJobData} from "@/queue/types.js"; import type Bull from "bull"; const logger = new Logger("deliver"); @@ -20,7 +16,14 @@ const logger = new Logger("deliver"); let latest: string | null = null; export default async (job: Bull.Job) => { - const { host } = new URL(job.data.to); + let host: string; + try { + host = new URL(job.data.to).host; + } catch (e) { + logger.error(`Failed URL parse: ${JSON.stringify(job.data)}`); + return "skip"; + } + const puny = toPuny(host); if (await shouldSkipInstance(puny)) return "skip";