Repeating Stripe Charges

Version 5.11

Environment Self-hosted dedicated Debian 12 VS running under Proxmox

Checklist

  • Can you replicate the issue on our v5 demo site https://demo.invoiceninja.com or Invoice Ninja? Unsure how to test
  • Have you searched existing issues? Yes
  • Have you inspected the logs in storage/logs/laravel.log for any errors? Not sure what to look for.

Describe the bug

Stripe is charging certain customers multiple times for the same invoice.

Steps To Reproduce

Expected Behavior

Additional context

Screenshots

Logs

For now, all I’m after are some ideas on how to identify whether the issue is with IN or Stripe.

I’m not sure if this is related, but I can also no longer use the Windows or iOS app to access IN. It worked fine until I built a new server, but since then, all it does is stall when loading the summary screen after login.

Hi,

For Stripe I suggest checking their API logs to see what’s being sent by Invoice Ninja.

Logging out and then back in should resolve the problem with the apps. If you long press the app version in the about dialog you’ll see a logout button.

Hey Hillel,

Thanks for the prompt reply.

I’ve logged out/in and even removed and reinstalled the apps on both Windows 11 and iPad, with the same results.

Is React the only option now? I have no option to switch back to HTML and the URL for the app changes from https://my-install.mydomain.tld to https://my-install.mydomain.tld/api/v1

Might any of this have a conceivable connection to the IN/Stripe billing issue?

Kind regards

Nigel

Are you using the latest version of the iPad app?

You can run this SQL query to change back to the Flutter web app.

UPDATE accounts SET set_react_as_default_ap = 0;

That forced the switch back to HTML, but it reacted by doing the same thing as the apps do, just sits there forever saying loading data. I’m pretty sure this issue is coming from my .env file, which has the URLs mentioned above listed in the APP_URL=“” and REACT_URL=“”.

This system was a fresh installation with data migrated from my previous IN server. Both were fully patched to the same version at the time of transfer. I have the old server archived, but this one has been in place a little under a year - without major issues until now.

The apps and server are the latest available.

Are there any errors in the browser console?

Apart from the pdf, all clean.

I’m asking you to check the browser console for errors, not the health check.

Note: please check when using the Flutter web app.

Tons. Unfortunately, I’m no coder so don’t have much of a clue what I’m looking at.

Is this for the Flutter or React app?

That one is react - the Flutter version has pages of them.

I’ll export both to text and post them here shortly.

React browser log:

14:23:42.994 Error: Can't find the actor ID for objects-manager from root or target actor's form. types.js:551:11
14:23:46.997 Error: Please use $(ref:runtime.getURL). 2 i18n.js:26
14:23:47.445 sendRemoveListener on closed conduit [email protected] 4 ConduitsChild.sys.mjs:122:13
14:23:48.610 Error: Please use $(ref:runtime.getURL). 2 i18n.js:26
14:23:48.620 Error: Please use $(ref:runtime.getURL). utils.js:899
14:23:48.621 Error: Please use $(ref:runtime.getURL). 3 downbar.js:286
14:23:48.681 Error: Please use $(ref:runtime.getURL). downbar.js:336
14:23:48.682 Error: Please use $(ref:runtime.getURL). downbar.js:359
14:23:48.795 NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIContentSniffer.getMIMETypeFromContent]
    onStopRequest resource:///modules/FaviconLoader.sys.mjs:296
FaviconLoader.sys.mjs:578:19
14:23:57.362 InvalidStateError: JSWindowActorChild.document getter: Cannot access property 'document' after actor 'FormHandler' has been destroyed 3 FormHandlerChild.sys.mjs:103
14:23:57.375 InvalidStateError: JSWindowActorChild.document getter: Cannot access property 'document' after actor 'FormHandler' has been destroyed 2 FormHandlerChild.sys.mjs:182
14:23:57.376 InvalidStateError: JSWindowActorChild.document getter: Cannot access property 'document' after actor 'FormHandler' has been destroyed 4 FormHandlerChild.sys.mjs:182
14:24:11.257 Error: Please use $(ref:runtime.getURL). 2 i18n.js:26
14:24:33.276 sendRemoveListener on closed conduit [email protected] ConduitsChild.sys.mjs:122:13
14:24:33.276 sendRemoveListener on closed conduit [email protected] ConduitsChild.sys.mjs:122:13
14:24:33.276 sendRemoveListener on closed conduit [email protected] ConduitsChild.sys.mjs:122:13
14:24:33.276 sendRemoveListener on closed conduit [email protected] ConduitsChild.sys.mjs:122:13
14:24:33.349 Error: Please use $(ref:runtime.getURL). i18n.js:26
14:24:33.480 Uncaught TypeError: antiClickjack is null
    <anonymous> http://192.168.1.254/cgi-bin/home.ha:89
home.ha:89:5
14:24:33.691 Uncaught TypeError: msgArea is null
    countDown http://192.168.1.254/cgi-bin/home.ha:74
    onload http://192.168.1.254/cgi-bin/home.ha:1
home.ha:74:5
14:24:34.347 Error: Please use $(ref:runtime.getURL). 2 i18n.js:26
14:24:35.332 Error: Please use $(ref:runtime.getURL). utils.js:899
14:24:35.333 Error: Please use $(ref:runtime.getURL). 3 downbar.js:286
14:24:35.375 Error: Please use $(ref:runtime.getURL). downbar.js:336
14:24:35.375 Error: Please use $(ref:runtime.getURL). downbar.js:359
14:24:42.771 Error: Please use $(ref:runtime.getURL). i18n.js:26
14:24:44.631
Object { message: "Request aborted", name: "AxiosError", code: "ECONNABORTED", config: {…}, request: XMLHttpRequest, stack: "" }
bundle.849fa574.js:382:1231
14:24:44.659 Error: Please use $(ref:runtime.getURL). i18n.js:26
14:24:44.851
Object { message: "Request failed with status code 403", name: "AxiosError", code: "ERR_BAD_REQUEST", config: {…}, request: XMLHttpRequest, response: {…}, stack: "" }
bundle.849fa574.js:382:425
14:24:44.957 sendRemoveListener on closed conduit [email protected] 4 ConduitsChild.sys.mjs:122:13
14:24:45.313 Error: Please use $(ref:runtime.getURL). i18n.js:26
14:24:45.316 Error: Please use $(ref:runtime.getURL). utils.js:899
14:24:45.316 Error: Please use $(ref:runtime.getURL). 3 downbar.js:286
14:24:45.350 Error: Please use $(ref:runtime.getURL). downbar.js:336
14:24:45.350 Error: Please use $(ref:runtime.getURL). downbar.js:359
14:24:45.743 Error: Please use $(ref:runtime.getURL). 2 i18n.js:26
14:24:46.431 NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIContentSniffer.getMIMETypeFromContent]
    onStopRequest resource:///modules/FaviconLoader.sys.mjs:296
FaviconLoader.sys.mjs:578:19
14:24:56.593 Error: Please use $(ref:runtime.getURL). i18n.js:26

Flutter browser log:

14:26:59.926 Error: Please use $(ref:runtime.getURL). 5 i18n.js:26
14:27:03.660 Error: Please use $(ref:runtime.getURL). utils.js:899
14:27:03.661 Error: Please use $(ref:runtime.getURL). 3 downbar.js:286
14:27:03.705 Error: Please use $(ref:runtime.getURL). downbar.js:336
14:27:03.707 Error: Please use $(ref:runtime.getURL). downbar.js:359
14:27:04.902 Error: Please use $(ref:runtime.getURL). i18n.js:26
14:27:05.485 ## ERROR (app_middleware - load state): State does not exist on file main.foss.dart.js:87663:78
14:27:18.404 POST: https://admin-v5.blue-canoe.net/api/v1/login?first_load=true&include_static=true&einvoice=true main.foss.dart.js:87663:78
14:27:19.395 ## Account Loaded: 1 main.foss.dart.js:87663:78
14:27:19.540 GET: https://admin-v5.blue-canoe.net/api/v1/clients?per_page=5000&page=1&t=1733840839540 main.foss.dart.js:87663:78
14:27:20.199 GET: https://admin-v5.blue-canoe.net/api/v1/products?per_page=5000&page=1&t=1733840840199 main.foss.dart.js:87663:78
14:27:20.611 GET: https://admin-v5.blue-canoe.net/api/v1/invoices?per_page=5000&page=1&created_at=1639232841&filter_deleted_clients=true main.foss.dart.js:87663:78
14:27:21.445 Deserializing to 'minified:QU' failed due to: Deserializing to 'minified:T<minified:ad>' failed due to: Deserializing to 'minified:ad' failed due to: Deserializing to 'minified:T<minified:iI>' failed due to: Deserializing to 'minified:iI' failed due to: Deserializing to 'String' failed due to: TypeError: 7: type 'int' is not a subtype of type 'String' main.foss.dart.js:87663:78
14:27:47.494 Error: Please use $(ref:runtime.getURL). i18n.js:26

Thanks,

Nigel

@david the key part of the Flutter error is “Deserializing to ‘String’ failed due to: TypeError: 7: type ‘int’ is not a subtype of type ‘String’” when loading the invoices.

I remember seeing this a few months back, is there a check-data command to fix it?

php artisan ninja:check-data --fix=true --line_items=true
2 Likes

I’m working the undefined mailer error. Thus far Google has not been of much help.

What is MAIL_MAILER set to in the .env file?

SMTP. It uses our mailserver to send invoices.

Is this related?

It’s possible, I’m not sure

I won’t try that, currently it mails out just fine so I’ll leave it alone.