Skip to content

Task 429 appears unsatisfiable: NetworkEventEvaluator only checks last navigation #42

Description

@renaissancefieldlite

Summary

Task 429 appears structurally unsatisfiable under the current
NetworkEventEvaluator logic for navigate tasks.

The task asks the agent to view the map info pages for the college or colleges
where The Chair was filmed, opening each in a separate tab. The dataset has
two NetworkEventEvaluator rows:

  • __MAP__/relation/583390395
  • __MAP__/relation/172206707

However, for navigate tasks with expected GET requests, the evaluator filters
the trace down to only the last navigation event before comparison. Because the
two expected URLs are distinct, a single last navigation event cannot satisfy
both expected rows. One row will always fail depending on which target was
visited last.

Version

  • package: webarena-verified==1.2.3
  • evaluator checksum observed:
    35c3385b1db4b3378657589f95f50defd4234bd36e5b93d44733fd561b01db4e
  • data checksum observed:
    d65275660814663375028e9017e1f929e3c38321041b125795e2713b52243d30

Relevant Evaluator Logic

In
webarena_verified/core/evaluation/evaluators/network_event_evaluator.py,
_filter_events_by_criteria() contains:

if context.task.is_navigate_task and config.expected.http_method == "GET":
    last_navigation_event = [e for e in events if e.is_navigation_event]
    return (last_navigation_event[-1],) if last_navigation_event else ()

This means each NetworkEventEvaluator for the same navigate task only sees the
same final navigation event.

Why Task 429 Cannot Pass Cleanly

Task 429 expects two different final target URLs:

{
  "evaluator": "NetworkEventEvaluator",
  "expected": {
    "url": "__MAP__/relation/583390395"
  }
}

and:

{
  "evaluator": "NetworkEventEvaluator",
  "expected": {
    "url": "__MAP__/relation/172206707"
  }
}

If the agent visits 583390395 last, the 172206707 check fails.

If the agent visits 172206707 last, the 583390395 check fails.

The trace can contain both correct navigation events, but the evaluator discards
all except the last one before checking either expected URL.

Observed Behavior

In our run, the trace contained both expected map GETs with HTTP 200, but the
official result failed the first expected URL because the evaluator only checked
the last navigation event:

  • actual event considered by the evaluator:
    __MAP__/relation/172206707
  • expected row that failed:
    __MAP__/relation/583390395

The agent response evaluator passed; only the network-event row failed.

Expected Behavior

For tasks with multiple expected navigation URLs, the evaluator should either:

  1. compare each expected URL against the full navigation-event set, or
  2. model the task as requiring a set of navigation events rather than repeatedly
    filtering to only the final navigation.

Suggested Fix

In _filter_events_by_criteria(), when a navigate task has multiple
NetworkEventEvaluator expectations, avoid the last-navigation-only reduction
and fall through to the normal URL filtering logic. That would allow each
expected URL to match the corresponding event in the trace.

Boundary

I am not requesting a benchmark score change here. I am reporting what appears
to be an evaluator/task contract issue for task 429.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions