> For the complete documentation index, see [llms.txt](https://docs.buildnatively.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.buildnatively.com/getting-started/other-platform-integrations/base44/troubleshooting-guide.md).

# 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.

***
