# Unlock wstETH on L2 when it gets stuck

Sometimes, the Arbitrum Bridge does not transfer tokens on Arbitrum, and the reason for this behavior is currently unknown. This guide explains how we can resolve this issue.

{% hint style="info" %}
**If more than 3 days have passed since you sent the transaction to L1 and the tokens have not been received on L2, these tokens may be lost.**
{% endhint %}

The following conditions must be met before proceeding:

* You have a transaction on L1 that has been successfully accepted by the network
* More than 1 hour has passed since the token bridge transaction was sent. Usually, the transfer takes up to 15 minutes, but it’s better to wait a bit longer.

## Solution

#### Step 1. Make sure the transaction on L1 was successfully sent

To identify the problem, you’ll need the `L1Sender` address (any version). Go to the *"Token Transfers (ERC-20)"* tab and look for the problematic transaction that was accepted on L1, but you know the tokens were not received on L2. You can easily identify it because the *"Token"* column will show wstETH.

<figure><img src="/files/fs3plYyi3AWiG8rpThCr" alt=""><figcaption></figcaption></figure>

#### Step 2. Find the token receiver on L2

In the `L1Sender` contract, go to the *"Contract" → “Read as Proxy”*, find the `arbitrumBridgeConfig` parameter, and copy the receiver address on L2.

<figure><img src="/files/sep9eEh5vw8tIwfuKJr1" alt=""><figcaption></figcaption></figure>

#### Make sure the tokens have not arrived on L2

Open the receiver address on L2 and go to the *"Token Transfers (ERC-20)"* tab. Look for the token deposit transaction; the token amount should be approximately the same as the amount you sent on L1 (you can find this in step 1). If, within an hour, the token amount from step 1 has not arrived on L2 — that is, if you don’t find such a transaction — proceed to the next step. If you’re reading this guide, you shouldn’t find the transaction on L2.

#### Resolve the problem

Go to the [Arbitrum Bridge explorer](https://portal.arbitrum.io/bridge?destinationChain=ethereum\&sanitized=true\&sourceChain=arbitrum-one\&tab=tx_history), and find the *"Bridge"* section with the *"Txn History"*. In the search field, enter the [`L1Sender`](/smart-contracts/documentation/distribution-protocol/deployed-contracts.md#ethereum-mainnet) address, as this is the address that sent tokens to the bridge. If there’s a problem, you should see a transaction with an error on L2 and a *"Retry"* button. Click *"Retry"*  and confirm the transaction (anyone can do this). After the transaction is completed, within a couple of minutes, the tokens should be transferred to L2.

<figure><img src="/files/Ug7gFIfb37olOiJyaH2i" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The screenshot shows an incorrect address in the search field, please disregard this. Enter the valid `L1Sender` address.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://gitbook.mor.org/smart-contracts/documentation/distribution-protocol/v7-protocol/get-started/unlock-wsteth-on-l2-when-it-gets-stuck.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
