Skip to content

V1.1.1

Choose a tag to compare

@zerozshare zerozshare released this 24 May 09:48
· 1 commit to main since this release
dd8439a

OpenFriend Core v1.1.1 — hotfix

Standalone WebRTC-bridge daemon that powers OpenFriend Mod and OpenFriend Plugin.

⚠️ Unofficial. Not affiliated with Microsoft, Mojang, or the Xbox brand. Use OpenFriend on accounts you control. You assume all risk.

What changed since v1.1.0

Single critical bug fix in the Hybrid merge layer.

Bug fix — Mojang permanent errors no longer masked by Hybrid

Symptom: in v1.1.0, sending a friend request to a player whose Xbox privacy settings disallowed friend requests would appear to succeed in the overlay (the friend showed up as outgoing), but the actual Mojang relationship was never created. Joining that "friend" then failed with connection reset because Mojang's signaling server correctly refused — the two accounts were never friends on Mojang's side. v1.0.7-v1.0.9 surfaced the original Mojang 403 error message directly; v1.1.0 silently swallowed it because the parallel Hybrid call succeeded (Hybrid has no Xbox privacy enforcement — it stores everything as a local cache).

Cause: PutFriendAction and PostPresence in internal/api/ had merge logic that, when Mojang returned a permanent error (403 / 404 / 409) but Hybrid accepted the call, returned the cached friends list with nil error — effectively claiming success to the IPC caller (the Mod / Plugin). The flag isPermanentMojangError was inspected only for logging, not for the return value.

Fix: when Mojang's error is permanent (4xx other than 429), Core now returns that error directly to the caller — exactly the v1.0.9 behaviour. Hybrid's response is only used to mask transient Mojang failures (network / 5xx / 429), which is what the Hybrid merge layer was always intended to do.

internal/api/friends.go    PutFriendAction
internal/api/presence.go   PostPresence

What this means in practice

Scenario v1.1.0 v1.1.1
Mojang: 5xx / timeout / 429 + Hybrid: OK success (replay queued) success (replay queued) — unchanged
Mojang: 403 privacy / 404 not-found / 409 already-friends + Hybrid: OK "success" (masked, phantom friend appears) the real Mojang error surfaces to the user — exactly v1.0.9 behaviour
Mojang: OK success success — unchanged
Both fail last error surfaced last error surfaced — unchanged

Phantom friends from v1.1.0 sessions

If you ran v1.1.0 against a privacy-blocked friend, that friend now exists only in your Hybrid view (Mojang side is empty). To remove the phantom:

  • Right-click the friend in the overlay → Remove. Mojang returns 404 (no such relationship, true), Hybrid returns 204. After the next refresh the phantom is gone.
  • Or just ignore them; they'll be silently deleted from Hybrid when the maintenance loop runs.

Hybrid does NOT bypass Xbox privacy

To be explicit: Hybrid is purely a friend-list resilience cache. It cannot create real Mojang friendships, and joining requires a real Mojang friendship because Mojang's signaling server validates the relationship before relaying WebRTC offers. If a friend's privacy settings block requests, the only fix is the friend toggling Xbox Privacy → Communication & multiplayer → "You can add friends" in their Xbox account settings.

Downloads

File OS Arch Notes
openfriend-darwin-arm64 macOS Apple Silicon
openfriend-darwin-amd64 macOS Intel
openfriend-linux-arm64 Linux aarch64 glibc 2.31+
openfriend-linux-amd64 Linux x86_64 glibc 2.31+
openfriend-windows-amd64.exe Windows x86_64 Windows 10+

If you only run OpenFriend Mod, you don't need to download Core separately — it's bundled inside every mod jar and self-extracts on first launch.

Channels