++(Original video) brown trout fish woman video trout lady video leak on twitter

brown trout fish woman video trout lady video leak on twitter
Watch 🟢 ➤ ➤ ➤ 🌐 Click Here To full Brown Trout Woman Fish Video
🔴 ➤►DOWNLOAD👉👉 Full Video Brown Trout Woman Fish Video
brown trout woman video
brown trout fish woman video
trout video twitter
brown trout fish video
brown trout woman full video
trout lady video original
brown trout fish woman
trout lady full video
brown trout woman video reddit
trout lady video twitter
trout for clout video
trout video reddit
tassie trout lady video
++(Original video) brown trout fish woman video trout lady video leak on twitter
here's viral brown trout fish woman video trout lady video leak on original link
Brown Trout Woman Video: The Viral Sensation You Can't Miss! The internet is buzzing over the Brown Trout Fish Woman Video—a clip that’s making waves across social media. If you’ve seen the Trout Video on Twitter, you know why everyone’s talking about it. For those who haven’t, the Brown Trout Woman Full Video is now available and it's even more shocking than the rumors suggest. Find the original Trout Lady Full Video and see why it's trending on Reddit and Twitter. Curious about the Tassie Trout Lady Video? Discover what makes this 'Trout for Clout' Video the most talked-about content online.


[SPARK-9562] Change reference to amplab/spark-ec2 from mesos/

cc @srowen @pwendell @nchammas

Merged build triggered.

Merged build started.

Test build #39561 has started for   PR 7899 at commit 7cc22c9.

Test build #39561 has finished for   PR 7899 at commit 7cc22c9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

LGTM.
We should perhaps also update the old README and repo description to direct people accordingly.

I created https://github.com/mesos/spark-ec2/pull/132 -- I'll leave this open for a few more hours to see if there are any other comments


chore: add pre-commit to README

There was no mention of pre-commit for local development. This adds a
short description of what it does and how to install it
TODO:

[ ] ‹fill in›

Fixes
Related to #206
Merge before/after

RELEASE NOTES BEGIN
Add pre-commit info to README
RELEASE NOTES END

nice, can you add a link to our contributing guidelines? it contains more info & links

Did this, wdyt?


feat: add video player using react-player to support YouTube, Vimeo and other sources

Building on the idea suggested by @postonsundays at https://github.com/Chainlit/chainlit/pull/686.
What can be done now:

[x] Display videos from various sources provided by ReactPlayer (YouTube, Facebook, Twitch, Vimeo, DailyMotion, ...)
[x] Custom config for each type of player as supported by ReactPlayer for further enhancements, for example, auto play and custom start time for YouTube videos.

This is how it looks with 3 videos from the test:
https://github.com/Chainlit/chainlit/blob/51be1a324fac1f82d1376fa95461589624daaf14/cypress/e2e/video_element/main.py#L6-L41

Do we have to specify the player config? Can't react-player auto detect the kind of video it is?

Yes, that's already the case, react-player can auto detect based on url. The player config is optional, it's added to show how to customize settings like autoplay and start time.

Ah, there's a branch conflict now. I'll fix it but can @willydouhard or someone from the team review this soon so we avoid new conflicts?

Waiting on the automated tests to merge your PR.


Google switched from OAuth2 to OpenID Connect

https://openid.net/connect/
in particular https://developers.google.com/identity/protocols/OpenIDConnect#authenticatingtheuser has changed.
Should this be patched or another project be started complying to OpenIdConnect-Standards?

Hmm. I'd imagine Yesod.Auth.OpenId would work for authentication via Google OpenId and we'd just remove this module from here if it's no longer useful.

I doubt, that that will work, but i will try it out.
I found a page describing how to update "old" OAuth2-Stuff:
https://developers.google.com/+/web/api/rest/auth-migration#update-oauth-20-login-or-migrate-to-google-sign-in
afais it is just changing the endpoints and scopes and the rest still works.
This will no longer use the "old" OAuth2-Endpoint, but use "Google+" for authentication (which should be the same database, as far as i can see).
I will try this out later and send you a pull-request, if that works.

I just tested the Google Login via #101, and it's working fine. Do you have any more information about this? This Issue has stagnated open for a while, and things are working when I test them, so I'm inclined to close it.


Novel Chapter List doesn't refresh anymore

This function has been very helpful, even more so now on novels which have PREVIEW chapters.
Read chapters doesn't update until re-opening novel.
Like this:

Finish reading a chapter.
Go back to Novel's chapters list.
You'll see it's not checked yet as "Read".
Have to either re-open novel or restart the app for it to update.

On a different note:
Just a question on this part of NovelContentModel.java
public void refreshPageModel() throws Exception {
        if(this.pageModel == null) {
            NovelsDao dao = NovelsDao.getInstance();
            PageModel tempPage = new PageModel();
            tempPage.setPage(this.page);
            this.pageModel = dao.getPageModel(tempPage, null);
        }
    }

Shouldn't it be this way?
public void refreshPageModel() throws Exception {
        NovelsDao dao = NovelsDao.getInstance();
        PageModel tempPage = new PageModel();
        tempPage.setPage(this.page);
        this.pageModel = dao.getPageModel(tempPage, null);
    }

It's meant to refresh after all, so regardless of whether this.pageModel is null or not, it needs to be refreshed, or so I would like to think(Please correct me if I'm wrong). There still is a very very rare occasion(happened once after I updated to v1.1.25-beta3) in which issue #175 happens, I can't pinpoint exactly when it does happen, but it is tolerable.

Regarding the side note, are you sure that it happened after you updated it to v 1.1.25-beta3?
Actually issue #175 comes from a problem in assignment on the NovelContentModel:
https://github.com/calvinaquino/LNReader-Android/blob/master/app/src/main/java/com/erakk/lnreader/dao/NovelsDao.java#L997
If you read the code, it shows that there is no assignment to pageModel in the NovelContentModelHelper (which retrieves NovelContent from local database):
https://github.com/calvinaquino/LNReader-Android/blob/master/app/src/main/java/com/erakk/lnreader/helper/db/NovelContentModelHelper.java#L53
The additional validation of this.pageModel == null is actually for the second case, where the content is retrieved from the internet. In this case, the application has already checked for the pageModel at:
https://github.com/calvinaquino/LNReader-Android/blob/master/app/src/main/java/com/erakk/lnreader/helper/db/NovelContentModelHelper.java#L123
So I think it will be redundant to retrieve (refresh) the pageModel twice.
Since I'm not the one who wrote the entire code, feel free to correct me if I'm wrong. After the latest update, I haven't had any issue with #175 .
Anyway, this issue (#177) also exists in my device. But in my case, it can be solved by scrolling down/up, without re-open novel or restart the app.

#177: Scroll up/down doesn't work for me. Not even expanding/collapsing Volume list work(It did on previous versions)
#175: I see, I never got farther looking into the code, thanks for code references. Yes, I'm sure I had v1.1.25-beta3 that time it happened, but just once that's why I think it's as good as fixed or maybe I just had to refresh my novel contents to fix it, and I did already for the most of my dled novels.

hiya, sorry for the late update. I got Real Life(:tm:) works, so the updates might bit late :smiley:

Yep works now, though in my case I had to uninstall the app first on my JB(made sure I had custom image path and db backup ofc, then made a clean install). Thank you!


[LIGHTNODE SALE] Used Paloma Address check on Validator Form

As a user who enters an already existing Paloma address into the activation form, I want the front-end to verify that my Paloma address is a new address with zero balance so that I will not be able to attempt to activate already used Paloma address.
Acceptance Criteria

When user attempts to activate, very address on Paloma has zero balance
If address has previous balance, return error to the user "The Paloma Wallet is already used. Please use your LightNode to activate your wallet"
Use RPC endpoint from NodeGuru

@joycehermosilla Please new design for this ticket.

@jamie088 @taariq Design: https://www.figma.com/design/yC7zuL9bFx9yvPd2aBalX6/Paloma-Light-Sale-Node?node-id=2444-328&t=FA4Z6VwPBQctt1AQ-4

Fixed.


mlx-image: fix link to filter

cc @riccardomusmeci

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.


Docs: #110 - Need a full key list of localization for #107

Docs for #107 was added.
Full inscriptions list who can be replaced to custom ones.

Thank you for your contribution to TOAST UI product. 🎉 😘 ✨

@anton-marchenko I reviwed and there is no missing key. Thank you so much.

Hi, i cant change Apply button language with apply key. The apply key is working on crop and mask. Is it possible to change apply button language ?

As you can see when i change 'apply' to 'Uygula' its working on mask apply button but not working on main apply button.


[WPF] Card BackgroundImage not rendering as expected

The image does render but it appears squashed up top

The same rendered in the web

Fixed it is. Awesome.


Clarification Request

Hi once again!
Have been using this repo code for managing a project and everything works great. But, I am a bit confused about the code. It would be great if you can shed some light on the workings and design choices on the topics listed below.
API Calls
I noticed that 2 different approaches are used when making POST requests.
For the login and register routes you make a client side API call to the backend. Then, you set the AUTH COOKIE by making a call to /api/login route handler. Since, a client call gets made to the laravel backend the correct backend cookies will be set on the client browser. And, you further add the frontend AUTH_COOKIE by making the call to the route handler.
For the routes /forgot-password, /password-reset/[token], etc., you are using the postData server action. This makes use of the serverSideRequestsManager class and makes the request. They use the current backend cookies in the request. However, I noticed that the backend cookie headers are not passed back to the client.
I was wondering why you decided not to return the updated cookie headers.
SetCookies component
How is this component meant to used?
This component automatically makes a request to the /renew-cookies API route handler which in turn updates the backend cookies and sets it on the client browser. But, the component runs in a useEffect once on mount so, if the user makes a request (for backend resources) after the page had loaded, this component won't have the desired effect on the same page.
Can you please comment whether the analysis is correct and what is the use case for this component?
Page Revalidation
I noticed the forgot password onSubmit handler is a bit different from the ones for password reset and email notification. It asks the postData server action to revalidate the /forgot-password path but doesn't make the router.push call to the path. This is a bit different to how the other 2 work (they make a router.push call). Did you forget or is there a reason for skipping the push?
Thanks in advance!

Hi! No worries, I appreciate your questions because they can help others. Both the code and the auth flow could be clearer haha, but I haven't had the time to make them simpler.
API Calls and SetCookies component
These two go hand-in-hand to answer your question. The reason why I make client API from the login and register forms is because those two serve as the triggers to register the current user session. If I used server actions for that, it would be an unnecessary complexity added to have to pass the cookies from the server to the client and set the current user in the global state. Perhaps the same could be applied to forgot-password and other routes. I actually didn't implement them in the project I developed using this approach, but now that I think about it, if I had to implement them, I would use client API calls as I do for the other routes to keep uniformity across all the auth-related routes, because yeah, using server actions is overengineering for those cases. The only advantage that you get is not exposing those endpoints to the client, but I don't think that justifies their use.
That leads me to why those cookies aren't getting updated and the relation with the SetCookies component (which could have a better name). Since you're fetching data in the server and then passing it to the client through postData, if you wanted to update the cookies that come from the backend, you would have to include the SetCookies in every form that needs it. Now I see that I overlooked this detail. Why? Because this component does exactly that, set the renewed cookies in the browser.
This component is necessary because if you fetch data from the server and want to pass the cookies to the client, you need to reach a client component, so you need to make sure that there's a client component that gets the response and automatically set the cookies. There's no workaround for this as far as I know, you need to have this component on every page where you fetch data from the server and want to update the cookies from the Laravel API. That's the use case, a server component where you fetch data within it and want to update the cookies. In the application that I developed, I include this component in a PageHeader component that is included in every page, that way I ensure the cookies get updated.
Regarding your concern about cookies not getting updated after the page is loaded because of the useEffect, you have two cases after the page has loaded:

You want to perform some update on the page using a server action. For this, you need to use revalidatePath or revalidateTag, so the cache will be cleared and the page will be re-mounted, hence the SetCookies component will be mounted again and the cookies will be updated. In methods like postData, a path revalidation is performed by default and that's why you need to provide a path, so if you use it, the cookies will always get updated.
You want to perform some update on the page making a direct call from the client to the Laravel API. In this case, the cookies will automatically be updated once the response is received in the browser from the Laravel API (as happens in login and register routes).

So, in any case, they do get updated.
Page Revalidation
The reason why there's a redirection in login and register pages using router.push is because you register the new authenticated user and then redirect the user to the homepage. If you didn't explicitly perform this redirection, you would have to "detect" the changes in the global state for the authenticated user using a useEffect in the provider which depends on the user, but that would be ugly because that useEffect would be running all the time. You could also do this redirection in registerUser, but I had some issues using useRouter in the provider, sometimes it would crash saying it wasn't a client component, that's why I preferred to keep it within the forms. In the other routes, you're not registering a new authenticated user, so you don't need to perform this redirection.
I hope this clarifies your questions enough haha, if not, don't hesitate to ask me anything you still don't understand well :)

Hi @carlos-talavera. Thanks for the detailed response. The code is a lot clearer now with the explanation you gave. I was a bit worried in making changes as I didn't want to break anything inadvertently.
But I see the reasoning behind all this. I wish it was easier to make Laravel (awesome backend) work nicely with NextJs (fast frontend) without all this complication. But this repo provides a solid start.
Off I go to make changes (and hopefully not break the code)!

 Yeah, I wish the same too, you have to do crazy maneuvers to make this work, but for now, it is what it is haha. I'll leave this issue open in case you have further questions, have a nice day!


Restore design hierarchy when design returned from Benchling

The flattening of the design for Benchling disconnects it from the original design.  This is necessary because Benchling may modify the design in any arbitrary way.  Since Benchling does not support SBOL, it is not able to keep track of where the design comes from, so it cannot, for example, link back to the original parts that are not changed.  The options are:

Treat it as a completely new design (current approach and simplest)
Treat it as a new design but somehow link it to the old one through the wasDerivedFrom field (challenge is getting Benchling to remember what it was derived from, perhaps SynBioHub will need to be the one that keeps track.)
Analyze the design when it comes back and compare it with the original, and attempt to update the original design by replacing parts that have changed.  This would be really cool, but definitely a lot more challenging.

too old. closing


Fix TOPLEVEL?

Closes #80.
$ bin/lumen -e "(print (compile (expand '(let (a 1 b 1 c 1) (list a b c)))))"
local _a = 1
local _b = 1
local _c = 1
{_a, _b, _c}
$ bin/lumen -e "(print (compile (expand '(let (a 1 b 1 c 1) (fn () (let (u 1 v 1) (list a b c u v)))))))"
local _a = 1
local _b = 1
local _c = 1
function ()
  local u = 1
  local v = 1
  return({_a, _b, _c, u, v})
end

I think it's possible that we might have to update LET to always rename because of some cases in JS where var is lifted to the top of the function body. I don't have such a case handy at the moment but if that's true could we then nuke TOPLEVEL? altogether?

There are a lot of considerations here. As you say, var is one of them.
How would you feel about let becoming a special form? That would preserve the scope for each variable declaration, rather than emitting %local's without scope.
let's lowering step would push an environment frame, then check whether each binding is bound. If it's already bound, it would make a unique name and re-macroexpand the remaining forms wrapped in (let-symbol (,a ,b) ...) like the let macro currently does.
This would also pave the way for dynamic scope and thread-local storage.

Here's how TypeScript deals with similar situations: link
Ignoring my previous comment for now, the answer is yes, it would work if LET always renamed its biding, with one important exception:
(let a 1
  (define _a 2))

this would compile to var _a = 1; var _a = 1.
If we follow TypeScript's lead, we'd need to detect that _a is already being used, and cause a to be renamed to _a1 instead of _a.
Ditto for:
(define _a2 0)
(let a 1
  (define _a 2)
  (define _a1 3))
(define _a3 0)

a should be renamed to _a4, since _a, _a1, _a2, and _a3 are in use.
One way to accomplish this is to modify do's lowering function to perform two passes:

let emits (%bind ,name ,value) instead of (%local ,name ,value)
lowering (%local foo ...) and (%local-function foo ...) runs (setenv "foo" :variable)
during do's first pass, lowering (%bind foo value) will hoist (%bind foo value)
during do's second pass, lowering (%bind foo value) will hoist (%local ,(unique "foo") value) if (variable? "foo") is true, otherwise will hoist (%local foo value)

We could sidestep this problem in three ways:

make it an error for define's first argument to start with an underscore

change unique to prefix variables with _g_ instead of _, or some other prefix unlikely to be used by anything else

ignore this problem

I'd really prefer that unique use the name of the top-level function as its prefix, so that if a function foo uses (let i ...), adding another function above it which uses (let i ...) doesn't cause the compiled output of foo to suddenly change. That would make merging/PRs a lot easier. But the compiled output would become much harder to read, and the total size would become significantly larger.
Rather than any of the above, we could just introduce a link step, so that expand becomes
(define-global expand (x)
  (link (lower (macroexpand x))))

link's job would be to search for (%local foo ...), check whether foo is already bound, then rename foo to (unique "foo") along with all subsequent references to foo. That way it's impossible to ever be in a situation where let or define generates a binding that is already in use.
(Or link could throw an error if foo is already bound, rather than try to rename it.)

I don't know. This is a tough problem. I guess we could just make let always rename, and ignore the fact that users could technically try to define a binding that let might generate. Which is exactly what you suggested.
I'll try to implement that and submit a fresh PR.
(For some reason, modifying let to always rename ends up causing bootstrapping issues after recompiling the codebase. LUMEN_HOST=node works and most of the tests pass, but lua hosts completely fail to run. I'll investigate more tomorrow. I assume it's something to do with |x| syntax, since lua targets use it in a few places. After this change it's no longer valid to use |x| syntax to refer to let-bound variables. The way to do that in general is (when-compiling (cat "|" (macroexpand "x") "|")).)

Making the change caught a bug right away:
https://github.com/sctb/lumen/blob/17d2c3871ac018a68a8163a670fdc231fd7f01e2/test.l#L440
In the while test, the second-to-last line is
(test= nil a)
but it should be
(test= nil b)

Got it. Changing let from
(or (bound? id) (toplevel?))
to
(not (id-literal? id))
works on both lua and js, and all tests pass (after a few modifications). Will submit a PR tomorrow.

Closed via #96.


Set new expiration date

Set the new expiration date for the Official Mender GPG Key, after extending its lifetime
Ticket: QA-775
External Contributor Checklist

🚨 Please review the guidelines for contributing to this repository.

[x] Make sure that all commits follow the conventional commit specification for the Mender project.

The majority of our contributions are fixes, which means your commit should have
the form below:
fix: <SHORT DESCRIPTION OF FIX>

<OPTIONAL LONGER DESCRIPTION>

Changelog: <USER-FRIENDLY-CHANGE-DESCRIPTION> or <None>
Ticket: <TICKET NUMBER> or <None>

[x] Make sure that all commits are signed with git --signoff. Also note that the signoff author must match the author of the commit.

Description
Set the new expiration date for the Official Mender GPG Key, after extending its lifetime

@mender-test-bot cherry-pick to:

3.6.x
3.7.x

@mender-test-bot cherry-pick to:

hosted


Bug in Text-marking methods or not ?

Hy,
The Text-marking methods work or not ? The marks do not match the coordinate in table tab1.
var click1=0;
var tab1=["1","2","1","5","4","9","4","15","7","5","7","8"];
var lo1=tab1.length/4;
function modepasapas1(){
editor1.markText({line: tab1[click1*4] , ch: tab1[click1*4+1]}, {line: tab1[click1*4+2], ch: tab1[click1*4+3]}, {className:"aaaa"});
alert(tab1[click1*4]+","+tab1[click1*4+1]+","+ tab1[click1*4+2]+","+ tab1[click1*4+3]);
click1++;}

https://framapic.org/l4h0onuVwz04/5NSXtTTxbiIZ.png

The Text-marking methods work or not ?

Yeah, they work. But don't pass strings where numbers are expected.

Thank you for your quick and efficient response.


remove ExplicitPath from loading rules

clientcmd.NewDefaultClientConfigLoadingRules() already checks for the KUBECONFIG env-var and also checks for ~/.kube/config. Setting an explicit path overrides this.
Fixes #16
Fixes #10

Thanks.


Plex connection

What version of Music Assistant has the issue?
2.0.0b72
The problem
I can set up the Plex connection successfully, but one load or synchronization I see errors related to IP connectivity issues int the log (see below).
Result is my library does not load fully and I cannot play any music. I can confirm Plex UI shows no issues with remote connectivity.
What can I do to help troubleshoot this?
How to reproduce
Set up a Plex source and wait for it to load/sync.
Relevant log output
2023-08-15 18:52:02.146 ERROR (Thread-23 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-08-15 18:52:12.017 ERROR (Thread-21 (_connect)) [plexapi] http://66.235.X.X:32400: HTTPConnectionPool(host='66.235.X.X', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f3ded4e0d10>, 'Connection to 66.235.X.X timed out. (connect timeout=10)'))
2023-08-15 18:52:12.288 ERROR (Thread-20 (_connect)) [plexapi] https://66-235-X-X.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-X-X.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f3ded4e2f10>, 'Connection to 66-235-X-X.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-08-15 18:52:12.318 INFO (MainThread) [music_assistant] Loaded music provider Plex Media Server Library
Additional information
The '66.235.X.X' IP in the logs is my IP. Note that there are no errors when first setting up the Plex connection (i.e., authenticating and selecting the library), but these errors appear during the first load / sync of the music.
What version of Home Assistant Core are your running
2023.8.0
What type of installation are you running?
Home Assistant Supervised
On what type of hardware are you running?
Generic x86-64 (e.g. Intel NUC)

It seems that there are connection problems. How is your Plex server connected to your network?

Yes. No issues using the app, browser, Xbox client, etc. Either locally or remote. What ports is it trying to use? I am wondering if there is some extra port I need to open just for this?

Hang on then. Is the Plex server not on the same subnet?

I only have one subnet on my network (192.168.1.X). Both my HA install and Plex server are on it.

Not sure why you mentioned opening a port then ?

well, since the logs shows my public IP in the connection errors, I thought that MA is reaching out to my Plex server through my public IP (66.253.X.X). Isn't that what it's doing and failing?
from the log posted above:
https://66-235-x-x.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400/: HTTPSConnectionPool(host='66-235-X-X.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f3ded4e2f10>, 'Connection to 66-235-X-X.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))

Have a look at the trouble shooting FAQ which gives some initial network things to look at

thanks, so what does it mean if the FAQ says: "MA must be able to be reached LOCALLY on port 8095."? Does that mean that I should be able to browse to http://[my local IP of HA install]:8095 and I should see the MA interface? If so, that clearly doesn't work on my side. I confirmed that the IP config of the local address was set to automatic and is now set to my local IP just to be sure.
I tried everything else in the FAQ by now...apart from #2 on this page, as I am unclear where to find this. There is no config on the devices at all. https://github.com/orgs/music-assistant/discussions/622

Nowadays you have to explicitly enable port 8095 in the settings for security reasons.

I need to review that discussion as the UI has changed a lot lately

Nowadays you have to explicitly enable port 8095 in the settings for security reasons. If you have now set that IP statically try rebooting the host

I found the setting to expose the webserver, I can now browse to it on http://localip:8095. After reboot the connection errors seem gone, and playback works (for now).
I am seeing other stuff now though:
2023-08-18 18:13:42.257 ERROR (MainThread) [asyncio] Task exception was never retrieved future: <Task finished name='Task-13408' coro=<TracksController.add_item_to_library() done, defined at /usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/media/tracks.py:122> exception=AssertionError()> Traceback (most recent call last):   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/media/tracks.py", line 132, in add_item_to_library     await self.mass.metadata.get_track_metadata(item)   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/metadata.py", line 163, in get_track_metadata     if metadata := await provider.get_track_metadata(track):                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/theaudiodb/__init__.py", line 172, in get_track_metadata     assert isinstance(track_artist, Artist) AssertionError
How to proceed?

I removed the addon, rebooted, reinstalled, enabled the web server port, added plex source and bam, same errors again:
2023-08-18 18:56:23.833 ERROR (Thread-13 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 2023-08-18 18:56:33.771 ERROR (Thread-11 (_connect)) [plexapi] http://66.235.X.Y:32400: HTTPConnectionPool(host='66.235.X.Y', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fbbd40f1510>, 'Connection to 66.235.X.Y timed out. (connect timeout=10)')) 2023-08-18 18:56:34.139 ERROR (Thread-10 (_connect)) [plexapi] https://66-235-X-Y.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-X-Y.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fbbd4107c50>, 'Connection to 66-235-X-Y.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)')) 2023-08-18 18:56:37.941 ERROR (Thread-19 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response')) 2023-08-18 18:56:47.877 ERROR (Thread-16 (_connect)) [plexapi] https://66-235-X-Y.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-X-Y.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fbbd42c6d50>, 'Connection to 66-235-X-Y.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)')) 2023-08-18 18:56:47.877 ERROR (Thread-17 (_connect)) [plexapi] http://66.235.X.Y:32400: HTTPConnectionPool(host='66.235.X.Y', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fbbd40cdc90>, 'Connection to 66.235.X.Y timed out. (connect timeout=10)')) 2023-08-18 18:56:47.927 INFO (MainThread) [music_assistant] Loaded music provider Plex Media Server Library
Looks like what we did so far hasn't helped. In the log above, I think I see it trying to connect to http://66.235.X.Y:32400 which is my IP on port 32400. When I open that URL I get access to Plex, so that works, so I am not sure what is causing the issue here... the port works fine. I don't recognize the <IP_ADDRESS> IP though, but that is probably where the Plex API itself is hosted?
Any idea what I can do to troubleshoot this?

Some of the IP might be internal docker. I don’t use Plex so will have to wait for one of the devs to come along

Sorry but everyone is busy at the moment. This will get looked at eventually. Looks like maybe a couple of problems. Networking issue can’t be ruled out. Do you have a 100% simple setup? Single subnet, no firewalls, no enterprise level gear?

single subnet, no enterprise level gear, no firewalls. nothing weird.

Wired or wireless connections?

yes, everything is wired.

It will be helpful if you could post more of the logs before the error so we can see what is going on. Also any log entries relating to the initial Plex connection.

from a fresh install of MA and setting up the Plex connection, this is what the log says:
2023-09-02 09:50:20.997 ERROR (Thread-25 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-09-02 09:50:30.939 ERROR (Thread-23 (_connect)) [plexapi] http://<IP_ADDRESS>:32400: HTTPConnectionPool(host='<IP_ADDRESS>', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fbbbc14ebd0>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=10)'))
2023-09-02 09:50:31.291 ERROR (Thread-22 (_connect)) [plexapi] https://66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fbbbc14f090>, 'Connection to 66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-09-02 09:50:31.352 ERROR (Thread-24 (_connect)) [plexapi] https://45-56-91-118.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:8443: HTTPSConnectionPool(host='45-56-91-118.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=8443): Read timed out. (read timeout=10)
2023-09-02 09:50:34.137 ERROR (Thread-31 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-09-02 09:50:44.071 ERROR (Thread-28 (_connect)) [plexapi] https://66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fbbbc14c810>, 'Connection to 66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-09-02 09:50:44.077 ERROR (Thread-29 (_connect)) [plexapi] http://<IP_ADDRESS>:32400: HTTPConnectionPool(host='<IP_ADDRESS>', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fbbbc11d150>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=10)'))
2023-09-02 09:50:44.570 ERROR (Thread-30 (_connect)) [plexapi] https://45-79-95-179.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:8443: HTTPSConnectionPool(host='45-79-95-179.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=8443): Read timed out. (read timeout=10)
2023-09-02 09:50:44.629 INFO (MainThread) [music_assistant] Loaded music provider Plex Media Server Library

Seems to me there is some network issue. Do you have any reverse proxies or anything like that? Have you tried adding another music provider like radio broswer and tested if that works?

I use nginx on HA. MA is behind nginx. Plex is not. If only someone would just tell me what to configure I can handle it. Documentation is lacking or I have been unable to find it. What ports does MA require to be routed to them?

Look in the advanced settings in the various CORE components particularly STREAMSERVER for some options that should help.

interesting, so does this mean that I should be able to access the STREAMSERVER at [published IP]:[TCP Port] in a browser? Because, right now in my set up, I can't, so there might be an issue here.

No that is the playing stream not the UI. As you have found the UI is available on port 8095 if you enable it. It is disabled by default for security reasons

ok, so how can I test that streamserver [published IP]:[port] is not causing the network issue? I am trying to help peel the onion here, but my lack of understanding of the internals of MA is showing. Sorry.

Have you got another music provider installed? Try that if so. If not then install the radio browser and find some station and try and play that

And quickly looking at Discord, I see some people had fixed issues with nginx by disabling asset caching.

And quickly looking at Discord, I see some people had fixed issues with nginx by disabling asset caching. (whatever that means!)

asset caching is already off.

And quickly looking at Discord, I see some people had fixed issues with nginx by disabling asset caching. (whatever that means!)

will try that tomorrow

Have you got another music provider installed? Try that if so. If not then install the radio browser and find some station and try and play that

so radiobrowser works without a hitch. What's next?

I use nginx on HA. MA is behind nginx. Plex is not. If only someone would just tell me what to configure I can handle it.

This is likely the issue but unfortunately I don't have any direct experience with nginx. I would keep googling for a solution until someone else can have a look at this that knows more.

right. Well, that means nothing will come up. I don't think NGINX is the culprit here, but then again, I am no expert either.

From what I can see in your log plexapi is the library that is reporting the connection issues. That is not MA code. Look at the two ports in those errors, I would start there...

From what I can see in your log plexapi is the library that is reporting the connection issues. That is not MA code. Look at the two ports in those errors, I would start there...
edit: Having said that MA will be providing the URLs to the library so still a possible configuration issue...

hmm, maybe I should try to run plexapi on its own and see if I can reproduce an issue there. If there is no issue there then it might still be an issue with HA config / nginx, but maybe I can even add a temporary addon that runs the plexapi code, so it would be behind NGINX. Work work work :)

from a fresh install of MA and setting up the Plex connection, this is what the log says:
2023-09-02 09:50:20.997 ERROR (Thread-25 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-09-02 09:50:30.939 ERROR (Thread-23 (_connect)) [plexapi] http://<IP_ADDRESS>:32400: HTTPConnectionPool(host='<IP_ADDRESS>', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fbbbc14ebd0>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=10)'))
2023-09-02 09:50:31.291 ERROR (Thread-22 (_connect)) [plexapi] https://66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fbbbc14f090>, 'Connection to 66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-09-02 09:50:31.352 ERROR (Thread-24 (_connect)) [plexapi] https://45-56-91-118.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:8443: HTTPSConnectionPool(host='45-56-91-118.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=8443): Read timed out. (read timeout=10)
2023-09-02 09:50:34.137 ERROR (Thread-31 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-09-02 09:50:44.071 ERROR (Thread-28 (_connect)) [plexapi] https://66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fbbbc14c810>, 'Connection to 66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-09-02 09:50:44.077 ERROR (Thread-29 (_connect)) [plexapi] http://<IP_ADDRESS>:32400: HTTPConnectionPool(host='<IP_ADDRESS>', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fbbbc11d150>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=10)'))
2023-09-02 09:50:44.570 ERROR (Thread-30 (_connect)) [plexapi] https://45-79-95-179.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:8443: HTTPSConnectionPool(host='45-79-95-179.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=8443): Read timed out. (read timeout=10)
2023-09-02 09:50:44.629 INFO (MainThread) [music_assistant] Loaded music provider Plex Media Server Library

This is actually normal and expected for when setting up the new connection.

wait what? Errors are normal? Please tell me it isn't so :) But even if it is, it still doesn't work after, so... how do I troubleshoot this if the errors I am seeing are "expected"?

wait what? Errors are normal? Please tell me it isn't so :) But even if it is, it still doesn't work after, so... how do I troubleshoot this if the errors I am seeing are "expected"?

It's due to the fact that a Plex account can have many, many possible connections:

Local IP
Over the internet
Through your docker network

Also you could have access to several servers, and then you have all these connections multiplied per server that your account has access to.

I'm confused that you have MA behind nginx if you have MA running as an add-on in HA, or did I miss something.

I'm confused that you have MA behind nginx if you have MA running as an add-on in HA, or did I miss something.

MA is an addon of HA indeed, just like Nginx. so forget about nginx being an issue here.

wait what? Errors are normal? Please tell me it isn't so :) But even if it is, it still doesn't work after, so... how do I troubleshoot this if the errors I am seeing are "expected"?

It's due to the fact that a Plex account can have many, many possible connections:

Local IP
Over the internet
Through your docker network

Also you could have access to several servers, and then you have all these connections multiplied per server that your account has access to.

I only have access to one server and that server is accessible either locally or over the internet. It's not on the docker network itself, but that shouldn't matter. If these errors are not telling us what is going on, where do I go to get better error logging that actually tells us what's going on so there is a chance this will start working eventually?

I'm just doing some playing around with the Plex connection code, but it's a little tricky simply due to how the Plexapi library handles stuff.
I'll see what I can do, to at least stabilise the initial connection.

awesome, let me know how I can help!

Apologies for pinging you directly on this, but is there any news @jozefKruszynski , @OzGav ? Currently my beautiful Plex server is sitting there and misses it's friend Music Assistant :) I can add a Plex connection just fine but no albums or tracks are loaded.
The log is still similar as before:
`
2023-10-26 16:15:34.993 ERROR (Thread-16 (_connect)) [plexapi] http://<IP_ADDRESS>:32400: HTTPConnectionPool(host='<IP_ADDRESS>', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f4f10a73ed0>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=10)'))
2023-10-26 16:15:35.158 ERROR (Thread-15 (_connect)) [plexapi] https://66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f4f121b0d90>, 'Connection to 66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-10-26 16:15:35.234 ERROR (Thread-17 (_connect)) [plexapi] https://45-56-91-118.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:8443: HTTPSConnectionPool(host='45-56-91-118.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=8443): Read timed out. (read timeout=10)
2023-10-26 16:15:44.381 ERROR (Thread-24 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-10-26 16:15:54.300 ERROR (Thread-21 (_connect)) [plexapi] https://66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f4f12632410>, 'Connection to 66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-10-26 16:15:54.301 ERROR (Thread-22 (_connect)) [plexapi] http://<IP_ADDRESS>:32400: HTTPConnectionPool(host='<IP_ADDRESS>', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f4f12632c10>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=10)'))
2023-10-26 16:15:54.474 ERROR (Thread-23 (_connect)) [plexapi] https://45-56-91-134.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:8443: HTTPSConnectionPool(host='45-56-91-134.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=8443): Read timed out. (read timeout=10)
2023-10-26 16:15:54.485 INFO (MainThread) [music_assistant] Loaded music provider Plex Media Server Library
2023-10-26 16:16:35.086 WARNING (MainThread) [music_assistant.music] Sync task for Plex Media Server Library completed with errors

Exception Group Traceback (most recent call last):
|   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/music.py", line 576, in run_sync
|     await provider.sync_library(media_types)
|   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/models/music_provider.py", line 386, in sync_library
|     library_item = await controller.add_item_to_library(
|                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/media/albums.py", line 115, in add_item_to_library
|     async with asyncio.TaskGroup() as tg:
|   File "/usr/local/lib/python3.11/asyncio/taskgroups.py", line 147, in aexit
|     raise me from None
| ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
+-+---------------- 1 ----------------
| Traceback (most recent call last):
|   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/media/albums.py", line 116, in add_item_to_library
|     for track in await self._get_provider_album_tracks(item.item_id, item.provider):
|                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|   File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/media/albums.py", line 293, in _get_provider_album_tracks
|     assert track.track_number
| AssertionError
+------------------------------------
`

Yeah sorry. Marcel has been super busy so we haven’t made any progress for a while. We have a number of Plex issues open so hopefully these will be attended to soon. Thanks for your patience.
Just looking at the error. Are your tracks tagged properly? The complaint in the log seems to be a missing track number? I grabbing at straw there though….

Just checking if there was change with b74

UI now shows an error icon:

This is what is in the log when I ask to resync / reload the Plex source:
2023-11-03 13:20:25.762 ERROR (MainThread) [music_assistant.webserver] [140557720096720] Error handling message: CommandMessage(message_id=22, command='config/providers/reload', args={'instance_id': 'plex'})
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/webserver.py", line 372, in _run_handler
    result = await result
             ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 309, in reload_provider
    await self._load_provider_config(config)
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 727, in _load_provider_config
    await self.mass.load_provider(config)
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/server.py", line 403, in load_provider
    provider = await prov_mod.setup(self, prov_manifest, conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 76, in setup
    await prov.handle_setup()
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 159, in handle_setup
    base_url, server_name, library_name = self.config.get_value(CONF_LIBRARY_ID).split(" / ")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 3, got 2)

Did you remove and readd the ex provider after the update? If not please do, it is an absolutely necessary step.

I did, yes. This error was gone after, but I had to select the library explicity. After I did that the error below went away:
2023-11-03 13:21:39.185 ERROR (MainThread) [music_assistant.webserver] [140557720096720] Error handling message: CommandMessage(message_id=24, command='config/providers/save', args={'provider_domain': 'plex', 'values': {'library_id': 'Crispy / Music', 'log_level': 'GLOBAL', 'enabled': True, 'name': 'Plex Media Server Library'}, 'instance_id': 'plex'})
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/webserver.py", line 372, in _run_handler
    result = await result
             ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 254, in save_provider_config
    config = await self._update_provider_config(instance_id, values)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 636, in _update_provider_config
    await self._load_provider_config(config)
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 727, in _load_provider_config
    await self.mass.load_provider(config)
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/server.py", line 403, in load_provider
    provider = await prov_mod.setup(self, prov_manifest, conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 76, in setup
    await prov.handle_setup()
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 159, in handle_setup
    base_url, server_name, library_name = self.config.get_value(CONF_LIBRARY_ID).split(" / ")
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: not enough values to unpack (expected 3, got 2)
2023-11-03 13:22:25.851 ERROR (Thread-12 (_connect)) [plexapi] http://<IP_ADDRESS>:8443: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
2023-11-03 13:22:35.796 ERROR (Thread-10 (_connect)) [plexapi] http://<IP_ADDRESS>:32400: HTTPConnectionPool(host='<IP_ADDRESS>', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7fd6245da850>, 'Connection to <IP_ADDRESS> timed out. (connect timeout=10)'))
2023-11-03 13:22:35.892 ERROR (Thread-9 (_connect)) [plexapi] https://66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400: HTTPSConnectionPool(host='66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7fd6245f4690>, 'Connection to 66-235-6-39.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct timed out. (connect timeout=10)'))
2023-11-03 13:22:36.585 ERROR (Thread-11 (_connect)) [plexapi] https://45-79-112-167.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:8443: HTTPSConnectionPool(host='45-79-112-167.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=8443): Read timed out. (read timeout=10)
2023-11-03 13:22:40.561 ERROR (MainThread) [music_assistant.webserver] [140557720096720] Error handling message: CommandMessage(message_id=33, command='config/providers/save', args={'provider_domain': 'plex', 'values': {'token': '-HPMyLHdaZWkTjbsTsMJ', 'library_id': {'title': 'Crispy / Music', 'value': 'https://192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400 / Crispy / Music'}, 'log_level': 'GLOBAL'}})
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/webserver.py", line 372, in _run_handler
    result = await result
             ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 256, in save_provider_config
    config = await self._add_provider_config(provider_domain, values)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 699, in _add_provider_config
    config: ProviderConfig = ProviderConfig.parse(
                             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/common/models/config_entries.py", line 170, in parse
    conf.values[entry.key].parse_value(
  File "/usr/local/lib/python3.11/site-packages/music_assistant/common/models/config_entries.py", line 140, in parse_value
    raise ValueError(f"{self.key} has unexpected type: {type(value)}")
ValueError: library_id has unexpected type: <class 'list'>
2023-11-03 13:22:43.590 ERROR (MainThread) [music_assistant.webserver] [140557720096720] Error handling message: CommandMessage(message_id=34, command='config/providers/save', args={'provider_domain': 'plex', 'values': {'token': '-HPMyLHdaZWkTjbsTsMJ', 'library_id': {'title': 'Crispy / Music', 'value': 'https://192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct:32400 / Crispy / Music'}, 'log_level': 'GLOBAL'}})
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/webserver.py", line 372, in _run_handler
    result = await result
             ^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 256, in save_provider_config
    config = await self._add_provider_config(provider_domain, values)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/controllers/config.py", line 699, in _add_provider_config
    config: ProviderConfig = ProviderConfig.parse(
                             ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/common/models/config_entries.py", line 170, in parse
    conf.values[entry.key].parse_value(
  File "/usr/local/lib/python3.11/site-packages/music_assistant/common/models/config_entries.py", line 140, in parse_value
    raise ValueError(f"{self.key} has unexpected type: {type(value)}")
ValueError: library_id has unexpected type: <class 'list'>

is there are a way for me to see sync progress?

I'll have to take a look at the code again when I get the chance.
I'm on holiday at the moment.

is there are a way for me to see sync progress?

I don’t believe so. Let us know if this is solved after the sync completes.

sync completed without errors and playback worked. It did work until the next reboot before, so I will have to give it some more tests before I am ready to close this issue.

We will close this one soon.

So far so good. I'll close it. Thanks for all your hard work!

here we go again...
2023-11-19 16:00:57.240 ERROR (MainThread) [music_assistant] Error loading provider(instance) Plex Media Server Library: HTTPSConnectionPool(host='192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f4ee4289090>: Failed to resolve '192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct' ([Errno -3] Temporary failure in name resolution)"))
Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/urllib3/connection.py", line 203, in _new_conn
    sock = connection.create_connection(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/urllib3/util/connection.py", line 60, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/socket.py", line 962, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
socket.gaierror: [Errno -3] Temporary failure in name resolution

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 791, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 492, in _make_request
    raise new_e
  File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 468, in _make_request
    self._validate_conn(conn)
  File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 1097, in _validate_conn
    conn.connect()
  File "/usr/local/lib/python3.11/site-packages/urllib3/connection.py", line 611, in connect
    self.sock = sock = self._new_conn()
                       ^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/urllib3/connection.py", line 210, in _new_conn
    raise NameResolutionError(self.host, self, e) from e
urllib3.exceptions.NameResolutionError: <urllib3.connection.HTTPSConnection object at 0x7f4ee4289090>: Failed to resolve '192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct' ([Errno -3] Temporary failure in name resolution)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 486, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/urllib3/connectionpool.py", line 845, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/urllib3/util/retry.py", line 515, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f4ee4289090>: Failed to resolve '192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct' ([Errno -3] Temporary failure in name resolution)"))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/server.py", line 468, in load_provider
    await self.load_provider(prov_conf)
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/server.py", line 403, in load_provider
    provider = await prov_mod.setup(self, prov_manifest, conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 76, in setup
    await prov.handle_setup()
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 174, in handle_setup
    self._plex_server = await self._run_async(connect)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 210, in _run_async
    return await self.mass.create_task(call, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/asyncio/threads.py", line 25, in to_thread
    return await loop.run_in_executor(None, func_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/music_assistant/server/providers/plex/__init__.py", line 163, in connect
    plex_server = PlexServer(
                  ^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/plexapi/server.py", line 116, in __init__
    data = self.query(self.key, timeout=self._timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/plexapi/server.py", line 759, in query
    response = method(url, headers=headers, timeout=timeout, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 602, in get
    return self.request("GET", url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/requests/adapters.py", line 519, in send
    raise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct', port=32400): Max retries exceeded with url: / (Caused by NameResolutionError("<urllib3.connection.HTTPSConnection object at 0x7f4ee4289090>: Failed to resolve '192-168-1-9.c640bd00d4fe4e32b5d63f17df9040c1.plex.direct' ([Errno -3] Temporary failure in name resolution)"))

Unfortunately Plex is not currently maintained. It will likely take some time for this to be looked at. If you can continue to troubleshoot that may assist as you appear to be the only one with this problem..?

Beta 83 requires you to remove and reinstall the Plex provider. Remember to give MA some time to clean up the db. Do NOT restart MA or the host until that is completed. Let us know if this issue is then fixed.

I will close this soon assuming it has been fixed.

plex connection looks good to me now.

plex connection looks good to me now.

Sorry to resurrect this thread.
Happy to start a new one if more apporopriate!
How did you manage to get this working? I've just installed MA, got it accessible on the directly on the local network.
GDM picks up my Plex server, but authentication fails with the "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))" error.
Any help appreciated. :-)

As you were.
Figured out that it was a Plex problem, not allowing insecure connections. :-)

I'm also getting the same max retries error when i try to authenticate my plex server:
HTTPConnectionPool(host='<IP_ADDRESS>%20', port=32400): Max retries exceeded with url: / (Caused by NameResolutionError("<urllib3.connection.HTTPConnection object at 0x7f1d04425910>: Failed to resolve '<IP_ADDRESS>%20' ([Errno -2] Name or service not known)"))


GEODE-2203: gfsh status locator/server - Command now gives more descr…

…iptive output on empty parameter
Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, you check travis-ci for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

Precheckin pending!


 Options Menu Transition Update

Description
Using the label slot to make a custom label when more items are selected the input wrap, but the menu don't update the 'translate' value, if reopen the options menu it update.
Is possible update the the transition (transform: translate) of the options menu when new item is selected?
https://stackblitz.com/edit/nuxt-ui-r35jcp?file=app.vue

This could be (correct me if I'm wrong) and upstream issue related to Popper not being reactive.
I remember having a similar issue when using HeadlessUI and Popper way before Nuxt UI was publicly available

I'm having a (somewhat) similar problem with UPopover. In my case, the data is loaded after the user hovers over the element, but when its contents update the Popover's position is not updated.
From the docs, you can force an update using the update() method from Popper. Would it be possible to expose its instance in some way, e.g. as state that can be read with a ref?
https://popper.js.org/docs/v2/lifecycle/#manual-update

The current work for #1289 will drop the support for Popper in favor of radix-vue's popover.
While theoretically the popper instance could be exposed via a template ref, adding such a feature and then removing it could add some misunderstanding.
@benjamincanac WDYT?

Closing as this has been fixed in v3 and we don't have a way to fix this since we depend on Headless UI.


Feature Request: Please provide a Bicep example of a system that uses a network security group (NSG)

Is your feature request related to a problem?
I spent the entire day trying to add a network security group (NSG) to my ACA-subnet by following https://learn.microsoft.com/en-us/azure/container-apps/firewall-integration#nsg-allow-rules , but I was running from error to error and always ended up with the ACA environment and/or apps in a weird broken state where I had to completely recreate them.
I also couldn't find any examples of this anywhere, so I ultimately gave up.
Describe the solution you'd like.
Please provide a Bicep sample (RedDog, ...) that uses a Container Apps environment in a VNET and with a locked down network security group.
It would also be great to have Portal-screenshots of the NSG rules on https://learn.microsoft.com/en-us/azure/container-apps/firewall-integration#nsg-allow-rules (e.g. to answer the question of whether one should use a DenyAll rule after the rules listed on the website)
Describe alternatives you've considered.
The alternative is to not use a NSG.
Additional context.
Some of the errors I ran into:

Deploying a Dapr-pubsub component got stuck with Internal Server Error. I had to cancel the deployment. I tried this multiple times and it always got stuck again until I deleted the environment.

One correlation ID: 9fef7e1b-2d9c-4fbf-8d87-1128042e364a

The Dapr sidecar for the app has many logs like this: 2022/09/27 14:47:51 failed to send the request: Post "http://otel-collector.k8se-apps.svc.cluster.local:9411/api/v2/spans": context deadline exceeded (Client.Timeout exceeded while awaiting headers)

This port isn't listed on the website. Is this traffic within my VNET/subnet or to a service tag or to the Internet?

Accessing the app via the public ingress just returns upstream connect error or disconnect/reset before headers. retried and the latest reset reason: connection failure
The Azure portal just shows Error loading revisions for the "Log stream" and "Console" pages.
After waiting for an hour (!) for the deletion of this app, I removed the nsg from the subnet, deleted the environment resource group and the app resource group again. Only then was the app finally gone a few minutes later.
In the Activity Log, there's a failed operation called Auth Token for Container App Dev APIs with error code ContainerAppNotFound
Deleting a cluster with a NSG (that I've probably messed up) once took almost an hour.
My ContainerAppSystemLogs_CL-table is almost empty. Until yesterday I was seeing many entries ("PodUnhealthy", "KEDAScalersStopped", ...) but today with my new environments the only entry is "Successfully created dapr component" (for a pubsub component)

I would unterstand that there's a network issue if there's no entries, but why did this one make it?

PS: It would also be great to have much better error messages for these cases.

I deleted and re-deployed the environment without any NSG and it was still in a weird broken state:

I deleted the old app and environment.
I waited until the MC_ resource group was gone.
I redeployed my environment via Bicep without the NSG.
I deployed a public app.
I was able to access the public url of the app.
I ran my Bicep-file for the environment again (I changed the NSG but it definitely isn't assigned to the subnet - I checked multiple times)
My public app was no longer available via the browser. It just returned upstream connect error or disconnect/reset before headers. retried and the latest reset reason: connection failure

No idea if this was due to the second deployment or due to some other delayed issue

I restarted the revision via az containerapp revision restart
The revision now displayed "Provision Status: Failed"
But I was still able to connect to my "app"-container and to the "daprd" container via "Log Stream" - so the app was running.
There were no errors in the logs of both of them
ContainerAppSystemLogs_CL contained just one entry with Error_s 1/2 Failed:daprdContainerCrashing | 1/2 Running
There still weren't any KEDA logs etc in ContainerAppSystemLogs_CL
I restarted the revision again via az containerapp revision restart
this time it first showed ""Provision Status: Success" but it later switched to "Provision Status: Failed" again.
This time I had 4 entries of 1/2 Failed:daprdContainerCrashing | 1/2 Running in the logs, nothing else.
I tried to deactivate the revision via az containerapp revision deactivate, but this returned Internal server error occurred. correlation ID: 302fac69-1aee-4eae-80c6-817204eb390c (maybe because there's only revision?)
I started the deletion of the app via the Portal
The revision ("Revision management"-screen) was gone pretty soon, but the app resource itself again didn't delete itself as fast as normally
After 3 minutes the Activity Log displayed the failed operation Auth Token for Container App Dev APIs with error code ContainerAppNotFound again (the deletion is still running).
The app was deleted after about an hour.

I don't know if something is messed up in the background now or if any of my original issues even were related to the NSG. This has been a frustrating day.

I tried to deploy my PoC again today (without any NSG). As soon as i run my Bicep-deployment for the ACA environment a second time (this time without changing anything), the app becomes unavailable. This time it returned stream timeout for the first request and upstream connect error or disconnect/reset before headers. retried and the latest reset reason: connection failure for any further requests.
Neither ContainerAppConsoleLogs_CL nor ContainerAppSystemLogs_CL contain any logs that might help me fix this issue.
I noticed that the metrics return 0 replicas, but I can still connect to my app via the Console and execute commands (e.g. ls), so it must still be running, right?

PS: Yes, it still creates two replicas at the beginning (https://github.com/microsoft/azure-container-apps/issues/399)
I then tried to set the scaling rule to minReplicas=1 via the portal (to make sure there definitely is one instance running), but this failed with the following error: Failed to deploy new revision: Internal server error occurred. correlation ID: 6b3fb6d8-12e5-40da-9234-ce563f0945e4

So, this issue is now about two things: It would still be great to have this Bicep-example of an NSG, but it seems like ACA is just broken in general and completely unusable for me now. 😞
I really hope other people have more success using ACA... TBH, I've never run into that many issues with any Azure service so far.
Let me know if I should edit/rename this issue to tackle the general bug and create a new simpler issue for the NSG Bicep example.

One more update (sorry for the spam). I have not changed my app and observed the following from Azure Monitor:
When I looked at the replica count, it fixed itself for a while and then returned 0 again:

When I looked at it again a few minutes later, the second period of 0 was gone, so it seems like metrics are delayed quite a few minutes sometimes. No idea though, why there still was a period with 0 replicas (no shutdown messages were in the logs).

Same for the CPU usage: it first shows another outage with fixed itself a few minutes later. Note that this shows a dashed line though (indicating missing data?), which didn't appear for the replica count.

Weirdly, the Memory Working Set never had this second delay:

I sometimes try to call the public URL of my app, but no requests are displayed in the metrics:

The Azure CLI (az containerapp revision show) returns that there is 1 replica and minReplicas is set to 0.
I had multiple periods of time where I waited for more than 5 minutes before doing another request, but there are no shutdown logs in ContainerAppConsoleLogs_CL since 8:30, when I deployed the app. So it seems like the auto-scaling is broken as well and never shuts down the app.

I deleted everything yesterday and ran a new deployment today. This time, my app did not become unavailable when I ran my environment-deployment for a second time after having deployed the app. It now also shuts down after a few minutes without any requests.
But I noticed that my MC_-resource group is now different. While yesterday there was a route table in it and only very few IP addresses were reserved in my subnet, today I'm back (?) to the model where many IP addresses are reserved and there's no route table-resource. So maybe all of these issues are related to a new (?) network-model of yours?

@cwe1ss we had issues that we rolled back during that timeframe. Sorry for the experience! Hopefully the route table dissociation and other things have been resolved. In general, feel free to email the team at<EMAIL_ADDRESS>with your environment name and the description. Much easier for us to look into specific environment issues.

Also will work on a bicep example on this

I'm closing this issue, since it was a specific time-related problem. I will try this again in a few weeks, when I have more time again.


Notebook screen cheese

Open a notebook
Maximize the terminal
Close the Window
Reopen the window

There is even a simple version: Just steps 1 and 2. This also renders the panel toolbar unusable.

I can still repro this running from sources :thinking:

Confirmed as still an issue on
Version: 1.59.0-insider (user setup)
Commit: e437d424c5e6de97632f5513229c7ebc2cf27a32
Date: 2021-07-28T05:13:47.114Z
Electron: 13.1.7
Chrome: 91.0.4472.124
Node.js: 14.16.0
V8: 9.1.269.36-electron.0
OS: Windows_NT x64 10.0.19043

Thanks for testing. I can reproduce this on macOS. Weird that it's not platform agnostic

nvm, I can reproduce this sometimes on Windows as well. The grid view is giving me a non-empty dimension when we max the panel somtimes. Will report a bug for that but for now I will fix this in notebook.

@rebornix After 5c1b0b7 now I am getting an error  ERR TypeError: Cannot read property 'width' of null. Created #129914 with steps to reproduce it


False-Positive STR100 inspection on local scope string in class method?

Hi,
today I updated to PyCharm 2020.2.2 with the latest compatible Python-Security plugin. Noticed a new inspection error I did not get with PyCharm 2020.1.3 and the corresponding plugin version (no idea which one).
However, I understand the background of this STR100 inspection. But in my case (see example) I assume it is a false-positive error. It shows up on the template.format() call where template is a local scope variable inside the class method. Maybe I do not understand the vulnerability completely, but how can this (constant) format string template be a risk/manipulated from outside?
Do I get something wrong with the vulnerability? Or is the inspection just unable to differentiate between scopes/variable context/definition (would be fine to know)? Or is it a bug?
class anything(object):
    # ...
    def report(self):
        template = "{C}{left:37}{N}  {EQ}  {C}{right:37}{N}"  # Using max. 80 chars.
        if False in self.equal.values():
            for key in self.datakeys:
                self.print(
                    template.format(
                        left=self.left.get(key, 'Unknown'),
                        right=self.right.get(key, 'Unknown'),
                        EQ='>>' if not self.equal.get(key) else '==',
                        C=fg.BLUE if not self.equal.get(key) else '',
                        N=fg.NONE if not self.equal.get(key) else '',
                    )
                )

Kind regards, Martin

This occurs for any .format() it sees. I encounter the same issue with [pendulum.DateTime.format](DeepDiff(event.cta_labels, event.si_labels, exclude_regex_paths=exclude_regex_paths)) as well.


Possible to run nuxt3 + pinia

Reproduction
Hi I was playing with nuxt3 and tried to add pinia to the project but received the following error (see below).
As of now is it possible to use nuxt3 with pinia? I have it running in a nuxt2 project without problems so I was wondering if I'm doing something wrong.
Steps to reproduce the behavior

Go to https://github.com/piscis/nuxt3-pinia
clone and install
run yarn dev
See error

Expected behavior
Being able to use pinia with nuxt3
Actual behavior
Error:
Nuxt CLI v3.0.0-27235451.ece0e01                                                                                20:33:00
                                                                                20:33:00
  > Local:    http://localhost:3000/
  > Network:  http://<IP_ADDRESS>:3000/
  > Network:  http://<IP_ADDRESS>:3000/
  > Network:  http://<IP_ADDRESS>:3000/

ℹ Vite warmed up in 432ms                                                                                20:33:01
✔ Vite server built in 682ms                                                                                20:33:01
✔ Vite server built in 56ms                                                                                20:33:01
✔ Nitro built in 149 ms                                                                                20:33:01
✔ Generated nuxt.d.ts                                                                                20:33:01
✔ Vite server built in 13ms                                                                                20:33:02
(node:6896) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension.
(Use `node --trace-warnings ...` to show where the warning was created)
Server Side Rendering Error: /Users/alex/nuxtzen/node_modules/pinia/dist/pinia.esm-bundler.js:6
import { getCurrentInstance, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, onUnmounted, reactive, toRef, del, computed, toRefs } from 'vue-demi';
^^^^^^

SyntaxError: Cannot use import statement outside a module
    at wrapSafe (internal/modules/cjs/loader.js:1001:16)
    at Module._compile (internal/modules/cjs/loader.js:1049:27)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at ModuleWrap.<anonymous> (internal/modules/esm/translators.js:199:29)
    at ModuleJob.run (internal/modules/esm/module_job.js:183:25)
    at async Loader.import (internal/modules/esm/loader.js:178:24)
    at async __instantiateModule__ (file:///Users/alex/nuxtzen/.nuxt/dist/server/server.mjs:1892:3)
Server Side Rendering Error: /Users/alex/nuxtzen/node_modules/pinia/dist/pinia.esm-bundler.js:6
import { getCurrentInstance, inject, toRaw, watch, unref, markRaw, effectScope, ref, isVue2, isRef, isReactive, set, onUnmounted, reactive, toRef, del, computed, toRefs } from 'vue-demi';

Additional information
I did not install @nuxt/composition-api because this is already provided by nuxt statet here:
https://v3.nuxtjs.org/getting-started/migration

The @pinia/nuxt and pinia itself are not yet fully compatible with Nuxt 3.
I need to figure out to make the dist files work in all different environments:

webpack
Node ESM
Node CJS
rollup
vite

It's currently being a pain impossible to support all of them out of the box and I'm considering dropping node CJS support and documenting the option needed for webpack based projects: https://github.com/posva/pinia/issues/675
If anybody has examples where the library works on all of the environments, I will be very happy to check them

got this and a few more things fixed thanks to the help of @danielroe 💚
fixed at 438b16d


Add SetRichPresence API on windows

This seems to do the trick on windows, in my testing. This API is needed for the game to make your in-game status visible to show on the friends list.

Could you implement this for Linux and macOS too? Thanks,

Could you implement this for Linux and macOS too? Thanks,

Yes, I mistakenly thought this library didn't implement those. I failed to notice the _unix.go file 😁 -- I will add support.

Thanks for feedback, I've updated the PR now. I tested the unix code on MacOS only so far, but it should work for linux since the code is shared.

I also fixed the return value, it was supposed to be bool


Ensure webpack-chunks.json is properly resolved.

A reference to the webpack context dir was missing in the chunk_info_file_path causing Error: Cannot find module 'build/assets/webpack-chunks.json' in some cases (my webpack files are not in the root of the project).
This should ensure the path is always properly resolved.

Coverage remained the same at 30.15% when pulling 0d116496b8c72d8a7d6694fad0f06907d45a1f8d on ghengeveld:master into dc24cd158b629dd7f58b23da6fd3b29762bff5a0 on halt-hammerzeit:master.

Why are you resolving webpack_configuration.output.path against something when it must be an absolute path already
https://github.com/webpack/docs/wiki/configuration#outputpath

I wasn't aware it should be absolute. Thanks for the clarification.


Migrate to Spectre.Console

Spectre.Cli has been moved into Spectre.Console library. We should also migrate.
With Spectre.Console additional console features are made available, some of which can replace existing addins (Figlet. We should make use of the additional console features provided by Spectre.Console by providing new or enhance existing aliases.

Fixed by  #3028

Fixed by  #3028

The second part of this issue has not been implemented yet:

With Spectre.Console additional console features are made available, some of which can replace existing addins (Figlet. We should make use of the additional console features provided by Spectre.Console by providing new or enhance existing aliases.

I created https://github.com/cake-build/cake/issues/3135 as follow up issue


Angular v15: Add support of MatLegacyFormFieldModule

Is there any plan to support MatLegacyFormFieldModule of angular v15?
Angular is going to release v15 where it brings mdc components for all the existing component and moved old components as legacy components. We have done stylings for old components as we do not have enough capacity to styles latest mdc components.
Currently the styles are breaking for us as by default mdc is getting used internally for dynamically generated form fields.
Do you guys have any plan for v15 migration of this repo?

@aitboudad do you guys have any timeline for the same?

do you guys have any timeline for the same?

No

I started having a look into how the upgrade process of ngx-formly to v15 would be. I might have some capacity to do the upgrade work @aitboudad. I wanted to check on the feasibility of me doing this upgrade work first. It looks like all the dependencies would need to be upgraded to angular v15. I would duplicate the material ui library and name it as material-legacy and upgrade the material library to the new implementation. I did some of the upgrade to see what happened and it definitely breaks a lot of tests across the other ui libraries doing the upgrade aswell due to upgrade angular. Do you have any work in the pipeline that would be affected?

@jackcw is it possible to keep supporting angular v14? My plan is to keep the current base compatible with both versions: v14 and v15 (if possible of course), for legacy components they can added with legacy suffix (for example: src/ui/material)/input-legacy)

I looked into material 15 and it said you can't use new material and old material in the same module which is why I thought putting it into its own ui library might work well so that when you setup formly in your project you install either material or material legacy. It would also make the upgrade path a bit less painful as you could just swap out your imports for material to material-legacy and it will all continue to work.
I would have to look into angular 14 compatibility once upgraded. I don't tend to do any publishable libraries work where I would need to use different angular versions

Just tested the current Formly v6 with Angular v15 and it seems working without any issue: https://stackblitz.com/edit/angular-xvuzyo,
Based on that, I think material-legacy is a good suggestion!

I'll have a go at it tomorrow / this week and push up a PR to see how it's all working. Focus on getting it all working first then look into the tests

Hi @aitboudad i've started the work to migrate to angular 15 with the material update. Here's the branch on my fork.
Few things of note that have changed in v15 of angular material:

Legacy mode has been removed and so the look of material will have changed, i add the outline as the default appearance for the demo app but the user will set it to their preferred appearance as normal.

There has been an update to the way that suffix and prefix work

While the previous form-field had a single directive for prefixes (matPrefix) and a single directive for suffixes (matSuffix), the MDC-based form-field distinguishes between text prefix/suffixes which are baseline aligned with the input text, and icon prefix/suffixes which are center aligned in the form-field. Use matTextPrefix or matTextSuffix to indicate a text prefix/suffix, and matIconPrefix or matIconSuffix to indicate an icon prefix/suffix. The old matSuffix and matPrefix APIs will behave like icons, though they are now deprecated.

I havent updated this just yet but i have had to replace the ng-container for the matPrefix/matSuffix - src/ui/material/form-field/src/form-field.wrapper.ts because of an error where material tries to call hasAtrribute on the element
Slider
This was probably the most reworked component

renamed thumbLabel to discrete i have changed this in the component attributes but left the props with the key of thumbLabel. Probably the best solution is to add discrete and put a deprecated label on that param and allow people to slowly move across.
The slider now has range capacity i would probably implement this as a new type as the model would be very different. Probably call it slider-range

I will get the material-legacy piece setup. Currently i have just copied the folder after upgrading to v15 so its there untouched. Also i've not looked at the tests just yet

@jackcw Many thanks! Please just send a PR, I'll try to check it further and make a release (this week) if everything went well.

Will do @aitboudad i've got the material legacy working now as well

This issue has been fixed and released as part of v6.1.0 release.
Please let us know, in case you are still encountering a similar issue/problem.
Thank you!

@aitboudad I don't see a possibility to use the Legacy Material Modules with the newly released formly v6.1.0, am I missing something?


Firefox is blocked from using latest master

Using Firefox 66.0.3 on Ubuntu 16.04 I get the following message:

Sorry, your browser is not currently supported. Please use Potlatch 2 to edit the map.

The issue occurs when using:
http://preview.ideditor.com/master
The issue does not occur when using:
http://preview.ideditor.com/release/

The same happens for me with 66.0.2 (64-bit), also on Ubuntu 16.04.

I think it's not a specific brower issue, same happens here using Chrome/Chromium on win7...

Same here, on latest Chromium on Ubuntu

Yep, this was my fault in 2967d2d020da37848d47e8fdc26031a23d63671d due to editing the build script in such a way that it worked locally. Thanks for reporting.


Add energy sensors

The upcoming Energy dashboard in Home Assistant needs energy sensors to work. This adds support for the energy type sensors (unit watt-hours) and makes sure all requirements are met so the entities can be used by the Energy dashboard.
Related to: https://github.com/gtdiehl/iotawattpy/pull/3

I'm trying out this PR with the new release, and getting an error loading sensors:
Traceback (most recent call last):   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 382, in async_add_entities     await asyncio.gather(*tasks)   File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 587, in _async_add_entity     await entity.add_to_platform_finish()   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 711, in add_to_platform_finish     self.async_write_ha_state()   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 464, in async_write_ha_state     self._async_write_ha_state()   File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 500, in _async_write_ha_state     attr.update(self.state_attributes or {})   File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 144, in state_attributes     if last_reset := self.last_reset:   File "/config/custom_components/iotawatt/sensor.py", line 125, in last_reset     last_reset = self.coordinator.data["sensors"][self._ent].getBegin() AttributeError: 'Sensor' object has no attribute 'getBegin'

Ah, i see this depends on unmerged changes to iotawattpy. Guess i'll have to wait.

Pardon the double-post - i logged an issue with the API also. I'm honestly not sure if this is an issue with the API or this PR. Want to make sure it gets visibility from the HA integrators:
I'm having a terrible time getting a "Solar Surplus" output showing up in HA.
HA seems to want a "return to grid" sensor rather than just looking at negative grid_total values (which would make more sense to me, but whatever). So i created an output called "Solar_Surplus" that looks like this:
Watts = 0 max (-1 x (Main_1 + Main_2))
(alternately, also tried this:)
Watts = 0 max (0 - main_1 - main_2)
The wattage sensor works just fine, but I get 0 kwh for the _kw version. It also appears to never refresh until an HA restart.
FYI, my Grid_Consumed output works just fine, with
Watts = 0 max (Main_1 + Main_2)
Any suggestions? On the Iotawatt itself using the Graph+ UI, i can see these guys no problem in WH over a year, month etc. Tried recreating, adding additional outputs with different names and the same query, and none of them work.

The code is fetching the input/output channel names using this query:
http://host.domain/query?show=series
It then essentially is just using this query to get energy:
http://host.domain/query?select=[time.iso,Input_0.wh,total_power.wh]&begin=y&end=m&group=all
What is IoTaWatt returning when you use those queries (replace total_power with our output name)?

Oh geez,
curl "http://<IP_ADDRESS>/query?select=[time.iso,Solar_Surplus.wh.d6]&begin=y&end=m&group=all"
gives me
[["2021-01-01T00:00:00",0]]
so its an Iotawatt bug. Super. This is probably gonna affect everyone trying to set up the Energy dashboard in HA. Any ideas why HA doesn't just let us set a single Grid_Total instead of needing 2 separate sensors for grid input and grid output?

@agners Thank you!
@jherby2k You can disregard my questions in the iotawattpy Issue

Np, sorry for the double post .

I posted this at https://community.iotawatt.com/t/possible-api-bug-gathering-kw-for-an-output/3172, not sure how quickly this will get looked at though...

Np, I'm only on my phone rn, but is the name of your sensor being returned by the first query end in .d6?

No, that seems to add decimal places. Works for other outputs. tried with and without.
Omitting the .wh also returns 0, which is weird since the Watt sensor looks fine in HA. you must be using a different query for that

I submitted a freature request as well at https://community.home-assistant.io/t/electricity-grid-should-allow-a-single-grid-total/327279. If HA would just take the Grid_Total value instead of needing these  “Grid consumption” and “return to grid” sensors, I wouldn't need these min/max calculations at all.

@agners Thank you for updating the sensor code to work with the latest HA code! I didn't want to merge this code into the repo here as it would cause a breaking change and force others to upgrade to 2021.8. So this is what I have done so far:

I have created a draft PR for the logo/icon to be added to the HA repo; https://github.com/home-assistant/brands/pull/2732.
I'm working on the documentation. Should be done today and I'll create a draft PR for that.
I created a branch from the HA core repo and was about to create a PR to merge IoTaWatt branch w/sensor code to the dev HA branch, but forgot the tests for config flow need to be updated. I'll try and work on that but not too familiar with that portion. Unless you're quicker at it them me?

re: my "return to grid" calculation issue, its sort of a limitation of IoTaWatt at this point. I'm only mentioning it now because you WILL get bug reports about not being able to set up the energy dashboard properly with IoTaWatt. Grid consumption is going to be an issue as well for most people. Here's the elaborate explaination:
https://community.iotawatt.com/t/solar-import-export/3175
the solution is really to send the power data to Influxdb and then pull it back into HA as energy using a query. WHich means not using this component.
Sounds like IoTaWatt might add the ability eventually, otherwise we need HA to add my feature request above.

@jherby2k keep in mind that this is the first iteration of the energy dashboard etc. Everything will get better :)
I don't have solar, or rather, don't have access to it since its a large multi-tenant building. For me IoTaWatt and HA dashboard works perfectly find :sunglasses:
From the link above it sounds like it should be possible to setup those outputs, and you should get accurate data for a day or so. Since we poll IoTaWatt multiple times a day for sure, this limit should not be a problem. We only would have to change the interval down from 1 year currently to a day.
Before doing that, can you try if getting the values using the Query API with the setup  as explained works?
It is not quite clear to me how the Graph+/the Query API enforces the limits overeasy is explaining, but I guess the easiest thing is to just try...

Just to be clear what I meant you should do, setup this outputs:

Outputs can be specified for Import or Export only where desired:
Import = Import/Export max 0
will yield only the energy imported from the grid.
Export = (Import/Export) min 0) abs

Use d in Query API to get the per day values
curl "http://<IP_ADDRESS>/query?select=[time.iso,Import.wh.d6,Export.wh.d6]&begin=d&end=m&group=all"
I think you have to wait an hour or so to query the API after setting up the outputs since IoTaWatt is only accumulating energy data from the point on where the output has been defined. But I could be wrong on that.

I won't be able to try that for about a week as I'm away in a road trip
now, but yes I will! Would be great to have an easier solution.
On Fri., Aug. 6, 2021, 11:59 a.m. Stefan Agner, @.***>
wrote:

Just to be clear what I meant you should do, setup this outputs:
Outputs can be specified for Import or Export only where desired:
Import = Import/Export max 0
will yield only the energy imported from the grid.
Export = (Import/Export) min 0) abs
Use d in Query API to get the per day values
curl "
http://<IP_ADDRESS>/query?select=\[time.iso,Import.wh.d6,Export.wh.d6\]&begin=d&end=m&group=all
"
I think you have to wait an hour or so to query the API after setting up
the outputs since IoTaWatt is only accumulating energy data from the point
on where the output has been defined. But I could be wrong on that.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gtdiehl/iotawatt_ha/pull/6#issuecomment-894458104,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACH3T44TDVJYS6FRSPUF4XDT3QWKZANCNFSM5BKGKLCA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email
.

@agners I can merge this change into main now.
I just released the current codebase as Version 0.0.3. Hopefully not a problem for people using older versions as when I publish a new version (with yours and possibly more code changes) the minimum version of HA will be specified in the hacs.json file.


DFU Mode over USB

There's an undocumented feature I didn't realize, if you hold start or select and up during start, the GP2040 reboots into uf2 flash mode.
For configuration updates via USB, we will handle this via HID input/output rather than DFU mode.