# Troubleshooting Guide

Here’s a detailed list of the **most common issues** you may encounter when turning your Base44 app into a mobile app with BuildNatively, along with their solutions.

***

### 1. Login & Authentication Issues

#### 1.1 My login opens in Safari/Chrome instead of inside the app

* **Why it happens:** Social login (Google, Apple, or Facebook) requires deep links (Universal Links/App Links) to send users back to the app after login.
* **How to fix:**
  1. Enable **Deep Links** in BuildNatively.
  2. Turn on **Social Auth** in the Features section.
  3. Rebuild your app.
* **Tip:** Make sure your Base44 login flow redirects users back to your **main app domain**.

***

#### 1.2 My email/password login works in Base44 but fails in the app

* **Why it happens:** Sessions can break if cookies or redirects move across different domains.
* **How to fix:**
  * Check that your Base44 app is fully on **HTTPS**.
  * Keep login and authentication on the same domain.
  * Avoid unnecessary redirects to other subdomains.

***

#### 1.3 I get stuck on a blank page after login

* **Why it happens:** Post-login redirects may point to a popup/modal instead of a full page with a URL.
* **How to fix:**
  * In Base44, make login and post-login screens **full pages with stable URLs** (e.g., `/dashboard`).
  * Update your redirect settings accordingly.

***

### 2. Payments & Checkout Issues

#### 2.1 Stripe or checkout pages don’t load properly

* **Why it happens:** Many payment providers require opening in the device’s browser for security.
* **How to fix:**
  * Mark your checkout pages as **external links** in BuildNatively.
  * This ensures they open in Safari/Chrome and complete properly.

***

#### 2.2 Apple/Google rejected my app because of payments

* **Why it happens:** App Stores require **In-App Purchases** for selling digital goods or subscriptions.
* **How to fix:**
  * Use BuildNatively’s **In-App Purchases** feature (via RevenueCat) for digital products.
  * Use Stripe/PayPal only for **physical goods** or **real-world services**.

***

### 3. Push Notifications & Deeplinks

#### 3.1 Notifications arrive but do nothing when tapped

* **Why it happens:** Notifications need a **deeplink** to open the correct screen.
* **How to fix:**
  * Include a unique URL in your notification (e.g., `/orders/123`).
  * Make sure that URL exists in Base44 and loads the correct page.

***

#### 3.2 Notifications open the wrong page

* **Why it happens:** The deeplink doesn’t match your Base44 routing.
* **How to fix:**
  * Double-check that the deeplink matches your Base44 page structure exactly.

***

#### 3.3 Notifications don’t arrive at all

* **Why it happens:** Push setup may be incomplete.
* **How to fix:**
  * Confirm that push notifications are enabled in BuildNatively.
  * Verify that the correct configuration files (OneSignal/Firebase) are uploaded.
  * Rebuild your app after enabling push.

***

### 4. Layout & Display Issues

#### 4.1 Some pages look broken or cut off on small screens

* **Why it happens:** The Base44 layout isn’t optimized for mobile.
* **How to fix:**
  * Test your Base44 app on a real phone browser.
  * Adjust layouts in Base44 (stack elements vertically, avoid wide tables).

***

#### 4.2 iOS zooms in too much on forms

* **Why it happens:** iOS automatically zooms when input text is too small.
* **How to fix:**
  * In Base44, set input text sizes to **at least 16px**.

***

#### 4.3 Scrolling feels broken or clunky

* **Why it happens:** Nested scroll areas or heavy animations can cause problems.
* **How to fix:**
  * Avoid multiple scrollable sections on the same page.
  * Reduce heavy scripts or animations.

***

### 5. Links & Navigation

#### 5.1 External links don’t work (YouTube, Calendly, Help Docs)

* **Why it happens:** BuildNatively treats all links as internal by default.
* **How to fix:**
  * Mark these links as **external** in BuildNatively so they open in the device’s browser.

***

#### 5.2 Clicking a link reloads the entire app

* **Why it happens:** The link may point to a different domain or subdomain.
* **How to fix:**
  * Ensure internal links use your app’s **primary domain**.

***

#### 5.3 My bottom tab bar doesn’t work correctly

* **Why it happens:** Each tab needs a valid internal URL.
* **How to fix:**
  * Check that each tab links to a real Base44 page with a stable URL.

***

### 6. Media, Camera & Files

#### 6.1 Camera or microphone don’t work

* **Why it happens:** Permissions aren’t enabled.
* **How to fix:**
  * In BuildNatively, enable **Camera/Microphone**.
  * Add clear **permission descriptions** (e.g., “We use your camera to upload a profile picture”).
  * Rebuild your app.

***

#### 6.2 File uploads fail inside the app

* **Why it happens:** Uploads may use insecure endpoints or unstable routes.
* **How to fix:**
  * Make sure your upload endpoint uses **HTTPS**.
  * Test uploads on a full Base44 page, not a popup.

***

#### 6.3 Images and videos make my app slow

* **Why it happens:** Large media files increase load time.
* **How to fix:**
  * Compress images and videos in Base44 before uploading.

***

### 7. Location & Permissions

#### 7.1 Location services don’t work

* **Why it happens:** Permissions are missing.
* **How to fix:**
  * Enable **Geolocation** in BuildNatively.
  * Add a clear permission description (e.g., “We use your location to show nearby events”).
  * Rebuild and test again.

***

#### 7.2 Apple rejected my app for permissions

* **Why it happens:** Apple requires descriptions for each permission you request.
* **How to fix:**
  * In BuildNatively, write clear, user-friendly permission explanations.
  * Example: “We use your contacts to help you invite friends to the app.”

***

### 8. Publishing Issues

#### 8.1 Apple rejected my app for being “just a website”

* **Why it happens:** Apple requires apps to have native functionality.
* **How to fix:**
  * Enable at least one **native feature** (push notifications, deep links, native share, camera, etc.).
  * Resubmit with these features enabled.

***

#### 8.2 My app icon or splash screen didn’t update

* **Why it happens:** Old assets may be cached.
* **How to fix:**
  * Upload the new assets in BuildNatively.
  * Rebuild your app.
  * Uninstall the old version from your phone before testing again.

***

#### 8.3 My app loads slowly on startup

* **Why it happens:** The Base44 homepage is too heavy.
* **How to fix:**
  * Optimize images and videos.
  * Remove or delay loading of unnecessary scripts.
  * Keep your homepage lightweight.

***

### 9. Preview vs. Built App Differences

#### 9.1 Some features don’t work in the Preview App

* **Why it happens:** The Preview App does not support every native feature.
* **How to fix:**
  * Use the Preview App to check layout and navigation.
  * Do a full build to test native features like notifications, deep links, and in-app purchases.

***

### 10. General Tips

* Always use **HTTPS** for all assets and APIs.
* Use **stable URLs** for important screens.
* Mark **checkout and external services** as external links.
* Always add **clear permission descriptions**.
* Test your Base44 app on a real phone before wrapping it.
* Rebuild your app in BuildNatively after changing native features.

### 11. App Store & Play Store Rejections

#### 11.1 My app was rejected for being “just a website”

* **Why it happens:** Apple requires apps to offer **native value** beyond a simple web wrapper.
* **How to fix:**
  * Add at least one **native feature** in BuildNatively (push notifications, deep links, native sharing, camera, location, in-app purchases, etc.).
  * Resubmit after enabling these features.

#### 11.2 My app was rejected for payments not using in-app purchases

* **Why it happens:** Apple and Google require you to use their **In-App Purchases (IAP)** for **digital goods, content, or subscriptions**. Using Stripe or PayPal for digital items leads to rejection.
* **How to fix:**
  * If you sell **digital items** (ebooks, lessons, access to content, memberships): enable **In-App Purchases** (via RevenueCat) in BuildNatively.
  * If you sell **physical goods or services** (clothing, coaching, bookings): you can use Stripe/PayPal.
  * Update your app and resubmit.

#### 11.3 My app was rejected for missing permission descriptions

* **Why it happens:** Apple requires **clear reasons** for every permission (camera, microphone, contacts, location, etc.).
* **How to fix:**
  * In BuildNatively, add clear descriptions for each enabled permission.
  * Examples:
    * Camera: “We use your camera to let you upload a profile picture.”
    * Location: “We use your location to show nearby events.”
    * Microphone: “We use your microphone to let you record voice messages.”
  * Rebuild and resubmit.

#### 11.4 My app was rejected for “broken links” or “poor navigation”

* **Why it happens:** Internal links may not be set up correctly, or external links weren’t marked as external.
* **How to fix:**
  * Test all links inside your app.
  * Mark external links (YouTube, Stripe, Calendly, external docs) as **external** in BuildNatively so they open in the device browser.
  * Rebuild and resubmit.

#### 11.5 My app was rejected for “slow loading” or “poor performance”

* **Why it happens:** Your Base44 app loads too slowly on mobile devices.
* **How to fix:**
  * Optimize Base44 by reducing large images, videos, and heavy scripts.
  * Keep your homepage lightweight so the app starts faster.
  * Resubmit after improving performance.

#### 11.6 My app was rejected for “insufficient content”

* **Why it happens:** Stores sometimes reject apps with little or placeholder content.
* **How to fix:**
  * Make sure your Base44 app is complete and has real content (not “Coming Soon” pages).
  * Test your app end-to-end before resubmitting.

#### 11.7 My app was rejected for “not following guidelines”

* **Why it happens:** Each store has rules on content, payments, and privacy. Common issues include:
  * No privacy policy page.
  * Selling digital goods without IAP.
  * Asking for permissions without justification.
* **How to fix:**
  * Add a **Privacy Policy** page to your Base44 app and link it in the app store listings.
  * Review Apple and Google guidelines for your type of app.
  * Rebuild and resubmit with fixes applied.

***


---

# 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://docs.buildnatively.com/getting-started/other-platform-integrations/base44/troubleshooting-guide.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.
