Giter Site home page Giter Site logo

Comments (5)

Widcket avatar Widcket commented on July 3, 2024

Hi @kafejo, thanks for raising this.

I cannot consistently reproduce it but I call this on every app launch and 1 out of 5 launches don't receive the start callback. The only thing I could observe is that it happens usually after launching this method after 5-10 minutes.

Sorry, I'm afraid I don't follow. You mention that you're calling this method on every app launch, but also that you're only observing this after 5-10 minutes. Could you please expand on this? Are you observing this on app launch, or after?

from auth0.swift.

kafejo avatar kafejo commented on July 3, 2024

Hi @Widcket, apologies for not being more clearer in my description. What I meant is that it seemed to happen only when I launched the app in a space of 5-10 minutes. It does happen on a launch. Upon further investigation it seems like the underlying data task completion handler is not being called under certain conditions.

public func start(_ callback: @escaping Callback) {
      let handler = self.handle
      let request = self.request
      let logger = self.logger

      logger?.trace(request: request, session: self.session)


      let task = session.dataTask(with: request, completionHandler: { data, response, error in
          if error == nil, let response = response {
              logger?.trace(response: response, data: data)
          }
          handler(Response(data: data, response: response as? HTTPURLResponse, error: error), callback)
      })
      task.resume()
}

I placed breakpoints before and in that completionHandler. The breakpoint before the dataTask method is triggered always but the one inside is not.

from auth0.swift.

Widcket avatar Widcket commented on July 3, 2024

Thanks for the information. As you can see in the snippet shared above, we're always calling the handler; we do not return early at all. Are you sure you're not calling this from inside a Task that is getting cancelled, or something similar?

from auth0.swift.

kafejo avatar kafejo commented on July 3, 2024

Yeah I can see that. It's not that the you never call the handler. It's more that the completionHandler of the data task seems not to be called in certain conditions. I noticed you are using a shared URLSession so I'm wondering can that have anything to do with it?

from auth0.swift.

Widcket avatar Widcket commented on July 3, 2024

Yes, the session defaults to URLSession.shared. I'll go ahead and close this issue for now, as it's not an SDK bug. Please feel free to ping if you'd prefer to reopen.

from auth0.swift.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.