Fix Discord link preview and setup problems
An admin can run /diagnose link: with the affected URL in the channel where it failed. The private result checks enablement, selected channels, exact permissions, supported URL format and recent provider observations. Anyone can run /help to check the current channel's scope.
Linky did not change the message #
In the affected channel's message box, type /help and select Linky's command from the suggestions. If it reports disabled, someone with Manage Server permission can follow the setup steps to enable Linky. That guide also explains what to check if the command is missing.
Check the bot's effective channel permissions and the correct send permission for the channel or thread. Replace mode also requires Manage Messages; Reply mode does not. A channel or category override can block a permission granted at server level. See the complete permission list.
Try a fresh supported link from a person. Linky does not rescan history; only existing tracked replies follow edits. Check /autofix to see whether you opted out in this server; use /autofix enabled:true to restore automatic fixes. Messages containing !nolinky, links in code, spoilers or angle brackets, and messages with embeds suppressed are intentionally skipped. Unsupported message types are left alone. An attachment copy that exceeds the limits prevents replacement. Reply mode keeps attachments on the original.
The URL changed, but the Discord preview is blank #
Open the original public post to confirm it exists. Discord or the preview service may be unable to load it. Private, age-restricted, deleted and unavailable posts can fail even when the URL rewrite is correct.
Linky waits for matching preview metadata and tries a vetted alternate where one is available. If it cannot confirm a useful preview, the original stays with a Retry preview button. Channel members who can view and send messages and are not timed out can retry, subject to the existing rate limits. Instagram normally tries Instagram7 and then OGInstagram; repeated failures across distinct posts that an alternate successfully previews can temporarily change that order. TikTok, Reddit, Twitch and Facebook currently have one provider each; retries cannot guarantee that an unavailable service recovers. See all providers.
/diagnose reports the last observed check, rather than declaring a whole service down because one post failed. No recent observation means that Linky has no recent result for that provider. Video metadata means Discord received a player reference; it does not prove the video plays on your device.
Check the examples for Instagram post and reel paths, TikTok video and short links, or X links and translation if the URL format is unclear.
Facebook needs a playable public Reel or page video. A login wall, private video or unavailable video keeps the original, and photo posts, /watch?v= and fb.watch links are not supported. Facebook link formats.
Try the manual hostname change shown in the relevant guide. If that link also has no preview, changing Linky's setup will not repair the provider's response. For a failed TikTok short link, try the full public video URL instead.
An article link stayed unchanged #
Check Articles in the /setup Platforms menu or ask an admin to run /settings and check articles. The usual channel scope, permissions, /autofix preference and !nolinky bypass apply.
Use the direct public HTTPS article URL. Linky needs a usable headline and article metadata supplied by the publisher. Homepages, sign-in pages, non-article pages and pages that block the lookup stay unchanged. A page opening in your signed-in browser does not mean the same content is available to Linky. Linky does not sign in, bypass paywalls or create an AI summary when metadata is missing.
Share up to three article URLs in their own message, separately from social or other links. If one article cannot be prepared, the source stays instead of being replaced with partial cards. Try one article with /fix link: to narrow down the problem. Original post opens the full source; a short or missing excerpt reflects the metadata available for the card. Images also depend on the publisher and Discord.
With Articles enabled, an unavailable public website link can prevent a partial fix of other social links in the same message. Share the social link separately and keep the website URL in its own message.
If a public article with usable metadata consistently fails, report its URL and the expected result. Remove private information from screenshots. See article support and limits.
An Erome album is waiting or failed #
The public hosted bot does not prepare Erome previews. Use your own Linky instance for this feature; server settings cannot override the hosted restriction. The checks below apply to self-hosted instances with Erome enabled.
Post a fresh album link in a channel enabled through /setup; no /fix command is needed for automatic previews. The server's Erome channel setting also applies. Linky starts with its first video, or a supported JPEG/PNG in an image-only album. Unavailable media and sources beyond the documented limits may fail.
If the Erome preview appears but the source message stays, check the server's posting mode. Automatic Replace removes it only after complete preview and attachment checks, with unchanged source/settings and sufficient permissions. Reply, manual fixes and Retry keep it. Replace needs Manage Messages; failed checks or source changes also preserve the message. The repost keeps attribution and Original post links, and a hosted gallery's Load next item still works after a successful replacement.
Eligible originals are downloaded and checked before Discord receives the gallery URL. Larger or incompatible files use attachment preparation, which can take longer, and a busy queue can add a wait. A video that plays on Erome can still fail when its server rejects a request from Linky or Discord. See the Erome limits and delivery paths.
Slow jobs report their stage. Waiting for a slot means other media work is using the bounded queue; waiting for Discord means preparation has progressed to the preview check. These updates are not a percentage or an estimate of time remaining. When a public preview includes Details, channel members can open its outcome and stage timings in a reply visible only to themselves. Private-response and DM Details stay requester-only, and every lookup stays tied to its exact message and location. Details expire after at most seven days or sooner if the local history fills. A confirmed metadata result does not prove playback on your device.
Load next item is shared with channel members who can view and send messages and are not timed out. The session's original owner keeps Remove access. If it expires after 24 hours or a bot restart, use /fix on the original album to start again. Attachment-only previews and private manual responses do not have this control. A gallery stops at 10 items or 192 MiB, and a failed next item leaves the existing items intact. Open Original post for everything else in the album.
The same channel permission and timeout checks apply to Retry preview on an older failure notice. Retrying uses the current bot version and keeps the source message. Remove remains limited to the original sharer or manual requester; pressing Retry or another shared button does not transfer that ownership. If retry also fails, send the Discord message link privately to the operator and include /diagnose results; do not include API keys or bot tokens.
The translation is missing or wrong #
English tweet translation applies when both the operator and server settings allow it. An admin can run /settings to check x and translate_tweets, then use /settings translate_tweets:true if the operator has made translation available. Lookup failures fall back to the native preview. Linky does not translate general chat or TikTok captions.
For Instagram captions, check instagram and translate_instagram in /settings; a server cannot enable an option that the operator has disabled. The feature translates public caption text through Google Cloud Translation Basic. Linky's translated excerpt uses one paragraph of up to 300 visible characters, including an ellipsis when shortened. Use Original post for the full caption; Linky does not add a full-caption text attachment. Native captions shown when translation is unavailable are controlled by the provider. It does not read text inside images or transcribe audio and video. Manual /fix and Apps → Fix with Linky can also translate captions. Media-first deliberately skips caption translation; Compact shortens Linky’s excerpt to 120 characters.
If Instagram7 cannot supply a caption, Google cannot translate it, or Linky's daily character budget is exhausted, the normal preview checks continue without translated text. Media previews can still fail independently; the original stays if Linky cannot confirm useful media. See the Instagram guide for the optional feature's limits.
Compare with the original post before relying on a translation. Report a reproducible public example.
Someone was tagged but did not get an alert #
On fresh automatic posts, the Shared by tag can notify the person who shared the original message in both Replace and Reply mode. Replace also allows explicit user tags that Discord recognized in the source. Reply allows only the original sharer; body mentions stay quiet. Reply excerpts, provider captions, role tags and @everyone/@here never add recipients. Body tags inside code, escaped text or spoilers stay quiet.
Manual fixes, retries, refreshes, failure notices and progress updates stay quiet. Linky preserves the source message's @silent setting. A visible tag does not guarantee an alert: the recipient's Discord notification settings still apply. The original message may also have notified them before replacement, so Linky cannot promise exactly one alert.
Two copies are visible #
In Reply mode, the original and Linky's reply are expected to remain visible. An admin can check the mode with /settings. In Replace mode, sending the replacement and deleting the original are separate Discord requests, so a network or permissions error can leave both visible. Check Manage Messages for that mode and report the time and channel type privately if more context is needed.
Updated