Widget Backend Web Module gives 400 error on live site, works in Blocks

Question:
I’m making a Widget that calls a backend API function to get data. In Wix Blocks Run environment, This worked perfectly and I got the data I needed, and the widget made updates correctly based on that data. Now I’m finished with the functionality and trying to publish it to my site to test the functionality on a live site. I’ve got the web pages containing the widgets linked and loading data correctly, But my WebModule API call is no longer working - It immediately returns a 400 Error every time. Why is the Backend Web Module (webMethod with permissions.anyone) not be working on the live site? Wix-Data calls that are used to fill other data works fine.

Product:
Wix Blocks Created Widget Backend Web Module Function, used on Wix Studio Website live published site. (can you tell it’s past midnight?)

What are you trying to achieve:
Call the backend Web Module API to get data the widget needs to update correctly.

What have you already tried:

  1. Tried returning a static return value first line of the method that the webModule calls,
  2. Tried returning a static value from the WebModule itself (not calling a separate method)
  3. Tried removing parameters to eliminate if Parameter types may be an issue.
    None of these worked. For some reason the live site api call to my method returns 400 error every time.
    As mentioned it worked fine in the Wix Blocks Run environment, so it’s not an issue with the method itself.

Additional information:
/backend/my_method.web.js
import { my_method } from “backend/my_method.js”;
export const get_my_method = webMethod(
Permissions.Anyone,
(data, object_id) => my_method(data, object_id)
);

In Widget
import { get_my_method } from “backend/my_method.web.js”;
setParameter(new_param) method :
const data_array = await get_my_method($widget.props.data,$widget.props.objectId);

Console.log(data_array) on live site :
FETCHED DATA ARRAY

  1. {status: 400, body: {…}, headers: {…}}
  2. body:
    1. error: {}
  3. headers:
    1. Content-Type: “application/json”
  4. status: 400

Console.log(data_array) on Wix Blocks Run :
FETCHED DATA ARRAY
[null,null,null,{object_1: value_1},{object_2: value_2},{object_3: value_3},null,null]

Have you configured permissions for the app? (At least that’s the first thing that comes to mind)

I’ve just checked logs (Apparently they’re down today so I connected google cloud and was able to see logs) and it shows 403 Forbidden as the initial backend error message, then sends a 400 response to the client, So that does seem to be the root issue.
What Permissions are required to hit a custom defined Web Module? I can’t seem to find anywhere in the documentation on Web Modules about what permissions are required.

I tried giving my app ALL permissions that seemed relevant in the permission scopes, 264 of them, Then deleted and reinstalled on the live site. Still getting 403 on the backend. Any other ideas?
I’m testing now with a test widget on a test page that just gets the site Currency.

Trying to figure this out was taking too much time so I tried to expose a http-functions.js endpoint and just call it by direct fetch api call instead. I’ve copied 2 examples now where I’m just trying to expose an get endpoint that returns the 3-letter currency code. Not sure if the correct url is BASE_URL/_functions/myFunction or BASE_URL/_functions-dev/myFunction , But I’m getting 500 Errors whenever I try to hit the endpoint, with log error :
Error loading Web Module Backend/http-functions.js: Both Resolutions failed at _load! … Original Resolver: cannot find module ‘backend/http-functions.js’ .
Why would this backend file not be found when it’s a static defined file? Is there some issue between the SITE code and my WIDGET code? is the widgeet code need additional url parameters to tell it to use the https-functions.js in the widget instead of the site?

Update, So it seems like it’s trying to load my SITE http-functions.js file, which doesn’t exist. I created my site http-functions.js file and was able to use the multiply method automatically generated.
How do I hit the custom endpoint DEFINED IN MY EXTENSION? Is there a separate URL? Do I need to somehow transfer the Function definitions from my widget into the site’s http-functions.js? Is that something that needs some permission?
This use case seems to be completely undocumented, I can’t f ind anything anywhere explaining the differences between Extension backend custom endpoints vs Site backend custom endpoints – how to get the URL for the extension (App? Widget?) endpoints compared to the site’s backend, or how to transfer the widget (App? Extension?)'s endpoint to the site. What happens if there’s a conflict and both define the same endpoint? Or there’s conflict between multiple extensions on the same site? I’d imagine this is an extremely heavy use case for extension creators.This should be documented and explicitly explained in detail.
I feel like this should be a separate quesiton since it’s strayed from the original question here into APIs. Any updates on to how I should proceed? I’ve missed my deadline because of this issue.