✎ ShareNotes
2026-10-18 · Workflow · By the ShareNotes team

Ubuntu Pastebin is gone and pastebinit is broken. Here's a working setup.

paste.ubuntu.com was switched off at the end of June 2026, and on Ubuntu, pastebinit's new default answers every paste with HTTP 400. Here is what happened, a one-line replacement that needs nothing installed, and a pastebinit config we tested end to end.

For years, pastebinit was the reflex on Ubuntu: pipe a log into it and get a link back for a bug report or a chat. In 2026 that stopped working in two separate ways. First the default destination closed. Then the new default started refusing pastes.

What happened to paste.ubuntu.com

On 22 May 2026, Canonical posted Ubuntu Pastebin Decommissioning on Ubuntu Discourse. It cited "a comprehensive infrastructure modernization and migration project" and set a shutdown date of the end of May. A follow-up on 25 May moved that to the end of June 2026. The post does not name a replacement.

When we tried it on 18 October 2026, paste.ubuntu.com did not answer at all: the connection timed out.

Why pastebinit still fails

pastebinit 1.8.0 no longer defaults to paste.ubuntu.com. It picks a default by distribution, and everything outside its short list gets bpa.st. This is the logic in the 1.8.0 source:

defaultPB = "bpa.st"
...
if release in ('debian', 'raspbian'):
    defaultPB = "paste.debian.net"
elif release in ('fedora', 'centos', 'rhel', 'rocky'):
    defaultPB = "paste.centos.org"
elif 'suse' in release or release == 'sles':
    defaultPB = "paste.opensuse.org"

Ubuntu is not on that list, so on Ubuntu a bare pastebinit posts to bpa.st. bpa.st has since changed its API, and pastebinit's request no longer fits it. The result is:

Failed to contact the server: HTTP Error 400: Bad Request

That is Launchpad bug 2160306 (reported 10 July 2026, marked Confirmed on 18 July) and pastebinit issue #16 upstream. Both were still open, with no fix released, when we checked on 18 October 2026. Run pastebinit -V and it prints the URL it is posting to, which makes the failure easy to see.

The one-line replacement

You do not need pastebinit to get a link from a terminal. curl is already installed, and the ShareNotes API takes a raw body with no key:

dmesg | curl -sS --data-binary @- -H "Content-Type: text/plain" \
  https://sharenotes.dev/api/v1/notes

That prints JSON with a url field. To get just the link, add | jq -r .url, or without jq:

dmesg | curl -sS --data-binary @- -H "Content-Type: text/plain" \
  https://sharenotes.dev/api/v1/notes | grep -o '"url":"[^"]*' | cut -d'"' -f4

As a shell function in ~/.bashrc. We named it sn, because paste is already a coreutils command:

sn() { curl -sS --data-binary @- -H "Content-Type: text/plain" \
  https://sharenotes.dev/api/v1/notes | jq -r .url; }

journalctl -b -p err | sn

A raw text body has no timer: the note stays as long as someone opens it at least once every 6 months. For a log you only need today, send JSON with an expiry instead:

dmesg | jq -Rs '{content: ., expiresIn: "24h"}' \
  | curl -sS -H "Content-Type: application/json" --data-binary @- \
    https://sharenotes.dev/api/v1/notes | jq -r .url

expiresIn takes 1h, 24h, 7d or 30d. Add "burnAfterRead": true for a note that is destroyed the first time it is opened. The full field list is on the developer page.

Using ShareNotes as a pastebinit backend

If your fingers type pastebinit, keep typing it. pastebinit reads extra pastebin definitions from ~/.pastebin.d/, so one file is enough:

mkdir -p ~/.pastebin.d
curl -fsSo ~/.pastebin.d/sharenotes.dev.conf \
  https://sharenotes.dev/pastebinit/sharenotes.dev.conf

dmesg | pastebinit -b sharenotes.dev
journalctl -u nginx -n 200 | pastebinit -b sharenotes.dev -t "nginx log" -e 1h

To make it the default, so you can drop -b, create ~/.pastebinit.xml:

<pastebinit>
  <pastebin>sharenotes.dev</pastebin>
</pastebinit>

What we tested, with pastebinit 1.8.0 from Debian against our API:

  • A bare paste prints a link, and the note expires in 24 hours (the config's default).
  • -e 1h sets a one-hour expiry, and -t sets the note's title.
  • Non-ASCII text arrives intact.
  • An invalid expiry such as -e 99y fails loudly with a 400 and a non-zero exit code. It does not quietly create a permanent note.
  • The ~/.pastebinit.xml default works.

That last-but-one point was not free. pastebinit sends its JSON as text/json, and until this week our API stored that body as plain text and ignored the expiry in it. We wrote up what went wrong and the fix.

Picking a replacement honestly

  • termbin: | nc termbin.com 9999, with nothing to install beyond netcat. Its acceptable-use policy says pastes are kept for one week, and you can delete one from the same IP within the first 10 minutes. If you just need a log in front of someone today, it is fine.
  • The configs pastebinit already ships. 1.8.0 bundles configs for bpa.st, dpaste.com, dpaste.org, p.defau.lt, paste.centos.org, paste.debian.net, paste.opendev.org, paste.opensuse.org, paste.ubuntu.com, paste.ubuntu.org.cn, paste2.org, pastebin.com and sprunge.us. Try another with -b. We have not tested those services, and the paste.ubuntu.com config points at a service that no longer answers.
  • ShareNotes, when you want a link you can read out loud, an expiry you choose, a PIN, or a note that is destroyed after its first read. The limits are 20 notes per day per IP and 10MB per note, and text only. Notes are not end-to-end encrypted, so do not paste secrets you would not hand to a server.
No sign-up · Free forever Paste something now →

Answers, briefly.

The questions this post gets asked most.

Is paste.ubuntu.com coming back?
Canonical's announcement on Ubuntu Discourse (22 May 2026) cites an infrastructure modernisation project and names no replacement. When we checked on 18 October 2026 the site did not respond.
Why does pastebinit say "HTTP Error 400: Bad Request"?
On Ubuntu, pastebinit 1.8.0 sends pastes to bpa.st by default, and bpa.st's API no longer accepts pastebinit's request format. It is tracked as Launchpad bug 2160306 and upstream issue #16, both still open as of 18 October 2026. Point pastebinit at a different pastebin with -b, or install a config for one.
Does ShareNotes work with pastebinit?
Yes. Save https://sharenotes.dev/pastebinit/sharenotes.dev.conf into ~/.pastebin.d/ and run pastebinit -b sharenotes.dev. We tested it end to end with pastebinit 1.8.0.
How long does a paste last?
With the ShareNotes pastebinit config, 24 hours by default; pass -e 1h, 7d or 30d to change it. With the plain curl one-liner there is no timer, and the note is kept as long as someone opens it at least once every 6 months.
Do I need an API key or an account?
No. The API is public, with a limit of 20 notes per day per IP address.