Skip to content
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

The operation couldn’t be completed. (OSStatus error -9847.) #3339

Closed
BraveEvidence opened this issue Feb 19, 2024 · 11 comments
Closed

The operation couldn’t be completed. (OSStatus error -9847.) #3339

BraveEvidence opened this issue Feb 19, 2024 · 11 comments
Labels

Comments

@BraveEvidence
Copy link

BraveEvidence commented Feb 19, 2024

Summary

I am trying to use Subscription on iOS simulator and I get error saying The operation couldn’t be completed. (OSStatus error -9847.)

Version

1.9.0

Steps to reproduce the behavior

https://github.com/BraveEvidence/iossubscription

Logs

The operation couldn’t be completed. (OSStatus error -9847.)

Anything else?

Is this a simulator issue? I don't have a real device to test on. I tried checking on https://www.osstatus.com and the error name is errSSLRecordOverflow

@BraveEvidence BraveEvidence added bug Generally incorrect behavior needs investigation labels Feb 19, 2024
@calvincestari
Copy link
Member

Hi @BraveEvidence - try using the ws protocol instead of wss for the websocket server address. It's unlikely your local host is serving WebSocket Secure which would be like using https locally.

@BraveEvidence
Copy link
Author

Thank you @calvincestari for your reply. I tried changing the protocol to ws and now I get error saying "The operation couldn’t be completed. (ApolloWebSocket.WebSocket.WSError error 1.)"

Any suggestions

@calvincestari
Copy link
Member

calvincestari commented Feb 19, 2024

Check that you're using the correct GraphQL WebSocket subprotocol for your server.

@BraveEvidence
Copy link
Author

@calvincestari I am using graphql-ws protocol. The subscriptions works fine on Android with Apollo Kotlin

@calvincestari
Copy link
Member

You still need to make sure you're selecting the correct protocol when initializing the websocket. If you're already doing that then you'll need to do some more debugging on your side to determine what else could be wrong; is there anything else in the logs besides the WSError?

@BraveEvidence
Copy link
Author

No other logs

@calvincestari
Copy link
Member

If you can replicate this in a sample client then I can try with a websocket service locally to see if anything else if incorrect in the client. It's difficult to debug from that single error response.

@BraveEvidence
Copy link
Author

Can you check my sample repo over here

@calvincestari
Copy link
Member

I just took a look at the project now and I think you are using the wrong websocket subprotocol. In the Network.swift file you're using the .graphql_ws protocol. Note that the initializer requires you to specify the name of the subprotocol and not the name of the library.

I am using graphql-ws protocol. The subscriptions works fine on Android with Apollo Kotlin

graphql-ws is the name of the library but the protocol that it uses is graphql-transport-ws. You can see this in the first line of the Communication heading in that protocol document you linked to.

The WebSocket sub-protocol for this specification is: graphql-transport-ws.

This is confusing because the two packages have terrible library names that are too similar to the subprotocol names. The WSProtocol enum in the Apollo iOS documentation has details about which is supported by which library.

Change the subprotocol in the Network.swift file to .graphql_transport_ws and I think it should work for you.

@BraveEvidence
Copy link
Author

@calvincestari Thank you for all the help

Copy link

Do you have any feedback for the maintainers? Please tell us by taking a one-minute survey. Your responses will help us understand Apollo iOS usage and allow us to serve you better.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants