> ## Documentation Index
> Fetch the complete documentation index at: https://moengage.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Why Are Location Values Not Updated on the User Profile?

> Find out why location attributes like city, state, and country cannot be updated via S3 or S2S API in MoEngage. These are SDK-derived internal values.

## Problem

Location details such as **City**, **State**, and **Country** passed through Server-to-Server API (S2S API) or Amazon Simple Storage Service (S3) imports are not updated on the user profile in the MoEngage dashboard.

<img alt="s3 import.png" src="https://mintcdn.com/moengage/dLyLAwgfsm1v6_MY/images/moengage_88018b.png?fit=max&auto=format&n=dLyLAwgfsm1v6_MY&q=85&s=242e98225621ca4bcb0af2c32860a9ff" width="1920" height="928" data-path="images/moengage_88018b.png" />

## Explanation

1. **Internal attributes:**
   * Location attributes (city, state, and country) are internal attributes derived from the user’s IP address during an SDK call triggered by the App/Site opened event.
   * These attributes are managed by the SDK to avoid potential conflicts and inconsistencies.
2. **Update restrictions:**
   * These attributes cannot be updated through:
     * File imports (S3)
     * S2S API calls (v1/customer and v1/transition)
   * Updates attempted through these methods may be overridden by SDK updates, making debugging difficult for large user bases.
3. **User creation behavior:**
   * These attributes are supported during the user creation process but remain unmodifiable afterward through non-SDK sources.
   * The values can be updated only after the SDK call occurs.
4. **SDK integration alternatives:**
   * If SDK integration is not planned, use custom user attributes to store and manage location details.
   * This avoids conflicts with the internal attributes tracked by the SDK.
