-
Notifications
You must be signed in to change notification settings - Fork 2.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ChangeFeedClient.list_changes() causes InvalidQueryParameterValue error #24135
Comments
@sylnsr Thanks for the issue. We will take a look asap |
Hi @sylnsr Mike, I believe your issue might be caused by the fact that you are using the So, can you try something like this? cf_client = ChangeFeedClient(
account_url = "https://{}.blob.core.windows.net".format(STORAGE_ACCOUNT),
credential=KEY_STR
)
change_feed = cf_client.list_changes() Hopefully that helps, thanks! |
@sylnsr Thanks for reaching out to us. I hope you had a chance to follow the above suggestion provided by @jalauzon-msft. Only standard general-purpose v2, premium block blob, and Blob storage accounts can enable the change feed. Accounts with a hierarchical namespace enabled are not currently supported. More Info here and here.
Python Sample code here. |
My "Account Kind" in the console currently shows So this presents the core issue for devs that run into this: The end point URL is not supported as specified. Can we at least get a more intuitive error message then please. The current error is a red-herring. The current error message is: So other than ".blob.core.windows.net" .. what other URL formats work then? Where is the documentation to that? i.e. .. "blob" and what else? Thanks |
Hi @sylnsr Mike, you are correct that This was mentioned since you were trying to use the As for the error message, I agree that is fairly misleading, but it is also a tricky one for the service since the requests for ChangeFeed are just standard List/Get requests for the ChangeFeed blobs but the |
Say whaaaaaaaaat?. If that part of the URL is immutable, then its absurd that its part of a param value. The logical thing to do in that method, would be to take ONLY the storage account name as the param then simply do:
..inside the method in behalf of the caller. The current design choice for that method is perplexingly illogical, un-intuitive and anti-pattern because it implies some variability in the URL. I realize there is a whole disparate set of documentation that could technically be woven together over time to start making sense of this lunacy, but that's not productive for anyone. That method really needs to be changed as well. |
@sylnsr Mike, sorry, I was simplifying a bit. We do need to support other account URLs such as custom domains, CDNs, static websites, as well as some other upcoming features.. These would also work as long as they point to the blob endpoint. So we need to keep support for mutable URLs. |
OK, that makes a lot more sense. So yeah, if we could just get that error message improved, that would be great. |
We will talk with the service team about trying to catch this specific case and put in a better error message, but it may be technically difficult. We're also reluctant to put in a client-side check here in case the service team adds support for this in the future. Going to close this issue though, as it seems the primary issue has been resolved. Thanks |
I'm using the sample code to list all change feed events. My code is almost the same, verbatim, save the fact that I need to workaround for issue 12568. Following the sample code you provide, I get this error:
Exception: HttpResponseError: (InvalidQueryParameterValue) Value for one of the query parameters specified in the request URI is invalid.
RequestId:2bc2b517-f01f-0001-67cb-55e1c0000000
Code: InvalidQueryParameterValue
To Reproduce
Call this code to list all change events .. based on the sample code provided example, but using the workaround for issue 12568
Expected behavior
According to the documentation, we should be able to get a result without any error. I mean, its only 2 function calls at this point to get it to break .... what could a user be doing wrong at that point?
Both my STORAGE_ACCOUNT and KEY_STR values are correct since I use them with
azure-storage-file-datalake==12.5.0
without any problems.Additional context
My requirements. file: req.txt
The text was updated successfully, but these errors were encountered: