Skip to content

fix: bugsweep week 2026-W34 - #9769

Closed
alejandro-jimenez-dcl wants to merge 12 commits into
devfrom
fix/bugsweep-week-2026-w34
Closed

fix: bugsweep week 2026-W34#9769
alejandro-jimenez-dcl wants to merge 12 commits into
devfrom
fix/bugsweep-week-2026-w34

Conversation

@alejandro-jimenez-dcl

Copy link
Copy Markdown
Contributor

Pull Request Description

What does this PR change?

Automated weekly bug sweep for ISO week 2026-W34. Open issues created in the last 7 days were triaged; 5 were fixed and 23 were skipped (duplicates, native-only crashes, open PRs already covering the fix, or scope too wide for a single sweep commit).

Fixed

Not worked on

# Reason
#9671 Already being fixed in #9712
#9692 Already being fixed in #9765
#9738 Already being fixed in #9765
#9696 Already being fixed in #9742
#9708 Already being fixed in #9742
#9764 Labeled duplicate; only il2cpp native frames, no C# source paths
#9762 Labeled duplicate; server-side smart contract rejection
#9761 Labeled duplicate; transient WebSocket close exception
#9760 Labeled duplicate; WebSocket send/dispose race tracked elsewhere
#9758 Native il2cpp EXCEPTION_ACCESS_VIOLATION, no C# source paths
#9753 Native il2cpp EXCEPTION_ACCESS_VIOLATION, release-blocker label
#9751 Feature request; labeled duplicate
#9749 Multi-feature enhancement spanning SceneLifeCycle, AbgenSidecar, DecentralandUrlsSource; too wide
#9743 Mac-specific native binary / code-signing; requires entitlement or dylib changes
#9741 Sentry auto-created; only il2cpp frames
#9737 Labeled duplicate; Stripe checkout spinner tracked elsewhere
#9736 Single-line Sentry error, no stack trace; too many possible causes without repro
#9729 Intermittent QA issue; reproduced once, failed three follow-up attempts
#9714 Third-party scene backend; fix would be in scene-side JavaScript
#9689 Labeled duplicate; NotAPlaceException tracked elsewhere
#9686 Labeled duplicate; only il2cpp frames
#9677 Intermittent (2/10 repro); complex D3D/Windows input-system interaction
#9676 Labeled duplicate; DCLWebSocket NullRef on dispose tracked elsewhere

Test Instructions

Steps (standard run):
\\�ash
metaforge explorer run XXXX
\\

Expected result: Explorer loads without exceptions from the five fixed issues. GPU instancing silently disabled on unsupported platforms. Media players do not hang on load errors. Satellite map cancellation does not trigger Addressables fallback. Auth-chain requests work for chains of any length.

Steps (fresh account):
\\�ash
metaforge account create --clear
metaforge explorer run XXXX
\\

Test Steps

  1. Run on a platform without compute shader support; confirm no FindKernel exception.
  2. Load a video that fails to buffer; confirm the player does not hang.
  3. Pan the satellite map quickly; confirm no Addressables key-not-found exceptions on cancellation.
  4. Make a SignedFetch request with a 6+ link auth chain; confirm all headers are emitted.
  5. Load a profile with no avatars field; confirm null returned instead of exception.

Quality Checklist

  • Changes have been tested locally
  • Performance impact has been considered (no per-frame paths modified)
  • Documentation has been updated (if required)

…ing (#9735)

Both SignedFetchWrap and AuthChainHeaderNames pre-built a fixed-size header
name array (hardcoded 5 entries and enum-count-sized respectively). A chain
with a sixth link threw IndexOutOfRangeException. Replace with direct
string interpolation matching what RPCSocialServices and PulseMultiplayerBus
already do, and what every other client (godot-explorer, bevy-explorer,
lamb2) does. No behaviour change for the current 3-link chains.
… not an array (#9733)

The profiles API occasionally returns a response where the "avatars" field
is absent or not a JSON array. DeserializeProfileList threw ArgumentException
in both that case and the empty-array case, surfacing as an unhandled
exception in the web request pipeline. Return null instead so callers receive
no profile rather than a crash.
…etPlaybackPropertiesAsync (#9695)

WaitUntil(() => control.GetBufferedTimes().Count > 0) never resolved when
media errored or closed mid-wait: UUAV stays out of Ready/Playing/Paused/Ended
and AVPro likewise never returns a buffered range. Extend the predicate to also
exit on GetLastError() != ErrorCode.None and return early so the subsequent
seek and play calls are skipped, avoiding a hang on both backends.
…r.LoadImageAsync instead of attempting Addressables fallback (#9679)

When the web request was cancelled (Dispose triggering internalCts.Cancel),
the first catch (Exception e) block tried the Addressables fallback without a
token. That fallback could throw (key not found), escaping the catch block and
propagating through GetAtlasChunkPrefabAsync without being suppressed. Split
the catch to re-throw OperationCanceledException immediately and protect the
Addressables fallback in its own try/catch so a failed fallback cannot escape
either.
@alejandro-jimenez-dcl
alejandro-jimenez-dcl requested review from a team as code owners August 17, 2026 14:55
@github-actions

github-actions Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

🚦 CI Status

Build

New build in progress, come back later!

Lint

Lint did not finish (failure) — the warning ratchet could not be evaluated. See logs.

Tests

⚠️ EditMode produced no results — the run likely crashed or timed out before finishing. Check the Unity Test / Test (editmode) job.

TESTS SUITE Result Passed Failed Skipped
EditMode ⚠️ No results

@decentraland-bot
decentraland-bot self-requested a review August 17, 2026 14:55
@github-actions
github-actions Bot requested a review from DafGreco August 17, 2026 14:56
@alejandro-jimenez-dcl

Copy link
Copy Markdown
Contributor Author

This was a test

@alejandro-jimenez-dcl
alejandro-jimenez-dcl deleted the fix/bugsweep-week-2026-w34 branch August 18, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant