Firefox 155 Stabilizes Parallel WebDriver BiDi and DevTools Proxy Debugging

Two synchronized internet control paths pass through regional proxy relays into a transparent browser testing chamber

Firefox 155 was released on September 1, 2026. Mozilla's developer notes say its moz:debugging module no longer relies on the same nested event-loop API as DevTools. The change prevents conflicts when WebDriver BiDi and DevTools run in parallel.

For proxy-backed browser automation, that is more than an internal cleanup. A test runner may control navigation through WebDriver BiDi while an engineer uses DevTools to inspect requests, timing and console evidence. If the two debugging surfaces interfere with each other, a failed run can look like a proxy outage even when the route is healthy.

Public source note: Mozilla MDN, “Firefox 155 release notes for developers,” released September 1, 2026.

What changed in Firefox 155

WebDriver BiDi provides bidirectional browser automation: a client can issue commands and subscribe to browser events during a session. DevTools gives an interactive view of network, console, storage and page behavior. Teams often need both during diagnosis.

Firefox 155 changes the Mozilla-specific debugging module so it no longer depends on the same nested event-loop mechanism used by DevTools. Mozilla describes the result directly: conflicts are prevented when WebDriver BiDi and DevTools are used in parallel.

The release does not guarantee that every automation framework, extension or proxy library is compatible. It removes one browser-side source of contention. Teams still need a controlled acceptance test for their exact Firefox build, driver, proxy protocol and workload.

Why proxy automation teams should care

A proxy test has at least four moving layers:

  1. the automation controller;
  2. the browser and its debugging interfaces;
  3. the proxy connection, authentication and route;
  4. the destination and expected content.

When the controller and debugger compete for browser execution, symptoms may include stalled commands, missing events, delayed network records, an unresponsive inspection panel or an artificial timeout. Rotating the proxy after such a symptom destroys useful evidence and can misclassify a browser-control failure as an exit failure.

The Firefox 155 change creates a better foundation for observing the same run through both interfaces, but attribution remains the team's responsibility.

Build a two-channel test design

Keep control and observation separate even when they target one browser session.

ChannelResponsibilityEvidence to retain
WebDriver BiDinavigation, interaction and event subscriptioncommand ID, event sequence, navigation result
DevToolsinteractive inspection and manual diagnosisrequest timing, initiator, console evidence
proxy telemetrygateway, session and route statesanitized route label, connection timing, rotation reason
application validatorbusiness outcomeexpected-content result, accepted-record count

Do not let a DevTools action silently change the test variable. Editing a request, clearing storage or disabling cache can invalidate a controlled proxy comparison.

Run a bounded Firefox 155 acceptance test

Use a destination and account you own or are authorized to test.

1. Freeze the test matrix

Record the Firefox version, automation library, WebDriver BiDi client, proxy protocol, gateway label, requested region, session mode and destination class. Keep credentials in a secret manager and store only safe labels in the test report.

2. Establish three baselines

Run the same scenario in three modes:

  • WebDriver BiDi without DevTools open;
  • DevTools inspection without the automation client;
  • WebDriver BiDi and DevTools together.

Use the same request count, timeout, proxy route and expected-content rule. Differences between the combined run and either baseline reveal coordination risk.

3. Correlate events explicitly

Generate one operation ID for each logical browser journey. Attach it to automation logs, proxy telemetry and validation output. Record monotonic timestamps so event ordering does not depend on wall-clock synchronization alone.

4. Keep one variable per comparison

If a combined run fails, repeat it once without changing the proxy. Then change only one approved factor: close DevTools, change the browser build or select a fresh proxy session. Do not change the proxy, browser profile, headers and timeout together.

5. Classify the failure before rotating

Use separate labels for:

  • automation command timeout;
  • missing or delayed BiDi event;
  • DevTools responsiveness problem;
  • proxy connection or authentication failure;
  • destination response or policy signal;
  • content-validation failure.

Only a route-eligible transient failure should trigger proxy rotation.

Metrics that make the upgrade measurable

Compare Firefox 155 with the previously approved build using:

  • completed journeys per 100 attempts;
  • automation command timeout rate;
  • missing-event rate;
  • DevTools-open versus DevTools-closed completion delta;
  • proxy connection success and p95 connect time;
  • first-attempt success versus bounded-retry success;
  • unexpected proxy rotations per journey;
  • median and p95 journey duration;
  • cost per validated result.

A browser upgrade passes only when it preserves the business outcome and does not create unexplained route churn or retry traffic.

Diagnose a stalled parallel session

When a combined run stalls, follow this order:

  1. stop new retries so the original evidence remains readable;
  2. note the last completed BiDi command and last received event;
  3. check whether DevTools remains responsive;
  4. check whether the proxy tunnel is still connected;
  5. compare the destination's last response with the validator result;
  6. rerun the same scenario with DevTools closed;
  7. rerun with DevTools open but the BiDi client detached;
  8. rotate the proxy only after browser-control causes are excluded.

For route attribution, combine this workflow with the proxy bypass audit. For workload pressure, use the proxy concurrency ramp test. For line-level operational evidence, use the Firefox 155 NDJSON proxy QA workflow.

Release gate for production browser jobs

Require all of the following before promoting Firefox 155:

  • the combined BiDi and DevTools scenario finishes repeatedly;
  • event counts reconcile with issued commands and completed journeys;
  • opening DevTools does not materially reduce valid success rate;
  • proxy connections and region targeting remain inside their prior limits;
  • no extra retry or rotation layer appears;
  • failures remain attributable to browser, proxy, destination or validator;
  • diagnostic output contains no credentials, cookies or personal payloads;
  • rollback to the previously approved build has been tested.

Use pass, conditional pass, fail and inconclusive. Do not call a run successful merely because the browser stayed open.

Operations checklist

  • Pin Firefox 155 and every automation dependency in the test environment.
  • Test WebDriver BiDi alone, DevTools alone and both together.
  • Preserve one operation ID across control, proxy and validation logs.
  • Record monotonic event timing and command sequence numbers.
  • Keep proxy credentials and authorization headers out of diagnostics.
  • Separate browser-control failures from route failures.
  • Allow proxy rotation only for explicitly eligible transient errors.
  • Compare first-attempt and eventual success separately.
  • Measure DevTools-open performance impact.
  • Keep a verified rollback path.

FAQ

Does Firefox 155 remove the need for proxy monitoring?

No. It prevents one debugging-interface conflict. Proxy authentication, reachability, location accuracy, session continuity and destination behavior still require separate monitoring.

Should DevTools stay open in every production run?

Usually not. Use it for controlled diagnosis or sampled QA when the operational cost is understood. Production telemetry should remain automated and privacy-aware.

Can every stalled BiDi command be fixed by changing the proxy?

No. A stalled command may come from browser control, page execution, the debugger, the proxy or the destination. Classify the layer before rotating.

What is the safest upgrade strategy?

Run the old and new browser builds against the same authorized matrix, use fixed acceptance thresholds, compare first-attempt outcomes and retain a tested rollback.

Compliance note

Use browser automation and proxy services only for lawful, authorized testing and data operations. Follow destination terms, privacy requirements, provider contracts and rate limits. Do not use debugging access to extract secrets, bypass access controls or conceal abusive automation. Redact credentials, cookies, tokens and unnecessary URLs from every diagnostic artifact.