## TL;DR

When you migrate to Ably JS v2, remove force: true from authorize() calls; the renewal is now unconditional. And dont pass a partial auth options object to authorize() unless you mean to replace the stored options wholesale.

## Steps

1. When you migrate to Ably JS v2, remove force: true from authorize() calls; the renewal is now unconditional. And dont pass a partial auth options object to authorize() unless you mean to replace the stored options wholesale. Re-check token renewal flows in tests, since the old special-case behavior is gone.

## When to use

You are seeing this: Re-check token renewal flows in tests, since the old special-case behavior is gone. Use this skill when you run into "Ably JS v2: authorize() always fetches a new token, force is gone".

## When not to use

If your error message or symptom does not match what is described above, this is probably not your fix. Search for your exact error text instead of forcing this one to fit.

## Versions

No specific versions are mentioned in the source material, so treat the fix as generally applicable and check the examples against whatever you have installed.

## Why this happens

The original report does not dig into a root cause. It documents the symptom and the fix that resolved it.

## Edge cases

- Also note that passing any auth options object to authorize() overwrites the library's stored auth options, which may not be what you want.
