--- title: Task error in Chromium tags: tech, debug --- I'm getting `Check failed: checker.CalledOnValidSequence()` error when a posted Task calls [http_loader_->DownloadToString](https://chromium.googlesource.com/chromium/src/+/66.0.3359.158/services/network/public/cpp/simple_url_loader.cc#1039). It turns out that calling `DETACH_FROM_SEQUENCE(sequence_checker_);` does not help. ```cpp func PrivateChannel::DoHTTPReq() {std::string pk} { // Prepares HTTP request.. // breaks here (see stack print below) http_loader_->DownloadToString( loader_factory, base::BindOnce(&PrivateChannel::OnPrivateChannelFirstRoundLoadComplete, base::Unretained(this), client_sks, referral_code_, encrypted_hashes_size), kMaxPrivateChannelServerResponseSizeBytes); } func A() { std::string input_str; task_runner_->PostTask(FROM_HERE, base::BindOnce(&PrivateChannel::DoHTTPReq, base::Unretained(this), input_str)); } ``` ``` [69142:60419:0911/143120.405312:FATAL:sequence_checker.h(127)] Check failed: checker.CalledOnValidSequence(). 0 libbase.dylib 0x0000000106502b5f base::debug::CollectStackTrace(void**, unsigned long) + 31 1 libbase.dylib 0x000000010619b0db base::debug::StackTrace::StackTrace(unsigned long) + 75 2 libbase.dylib 0x000000010619b15d base::debug::StackTrace::StackTrace(unsigned long) + 29 3 libbase.dylib 0x000000010619b138 base::debug::StackTrace::StackTrace() + 40 4 libbase.dylib 0x00000001061e87f7 logging::LogMessage::~LogMessage() + 183 5 libbase.dylib 0x00000001061e7475 logging::LogMessage::~LogMessage() + 21 6 libbindings.dylib 0x000000010776344b base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker(base::SequenceChecker const&) + 187 7 libbindings.dylib 0x000000010776331d base::ScopedValidateSequenceChecker::ScopedValidateSequenceChecker(base::SequenceChecker const&) + 29 8 libbindings.dylib 0x000000010778c340 mojo::InterfaceEndpointClient::SendMessage(mojo::Message*, bool) + 96 9 libbindings.dylib 0x000000010778cedf mojo::InterfaceEndpointClient::Accept(mojo::Message*) + 31 10 libchrome_dll.dylib 0x00000001091b9838 network::mojom::URLLoaderFactoryProxy::CreateLoaderAndStart(mojo::PendingReceiver<network::mojom::URLLoader>, int, int, unsigned int, network::ResourceRequest const&, mojo::Pendin gRemote<network::mojom::URLLoaderClient>, net::MutableNetworkTrafficAnnotationTag const&) + 2184 11 libnetwork_cpp.dylib 0x00000001665ad99c network::(anonymous namespace)::SimpleURLLoaderImpl::StartRequest(network::mojom::URLLoaderFactory*) + 892 12 libnetwork_cpp.dylib 0x00000001665a75ed network::(anonymous namespace)::SimpleURLLoaderImpl::Start(network::mojom::URLLoaderFactory*) + 813 13 libnetwork_cpp.dylib 0x00000001665a24de network::(anonymous namespace)::SimpleURLLoaderImpl::DownloadToString(network::mojom::URLLoaderFactory*, base::OnceCallback<void (std::__1::unique_ptr<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::default_delete<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >)>, unsigned long) + 382 14 libchrome_dll.dylib 0x000000010bfc67bf private_channel::PrivateChannel::FirstRoundProtocol(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::c har_traits<char>, std::__1::allocator<char> >, int) + 1663 15 libchrome_dll.dylib 0x000000010bfc5f27 private_channel::PrivateChannel::Test(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) + 2695 16 libchrome_dll.dylib 0x000000010bfc9286 void base::internal::FunctorTraits<void (private_channel::PrivateChannel::*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >), void>::Invoke< void (private_channel::PrivateChannel::*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >), private_channel::PrivateChannel*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::alloca tor<char> > >(void (private_channel::PrivateChannel::*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >), private_channel::PrivateChannel*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) + 182 17 libchrome_dll.dylib 0x000000010bfc9166 void base::internal::InvokeHelper<false, void>::MakeItSo<void (private_channel::PrivateChannel::*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<ch ar> >), private_channel::PrivateChannel*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >(void (private_channel::PrivateChannel::*&&)(std::__1::basic_string<char, std::__1::char_traits<char>, std::_ _1::allocator<char> >), private_channel::PrivateChannel*&&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&&) + 102 18 libchrome_dll.dylib 0x000000010bfc90b1 void base::internal::Invoker<base::internal::BindState<void (private_channel::PrivateChannel::*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char > >), base::internal::UnretainedWrapper<private_channel::PrivateChannel>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void ()>::RunImpl<void (private_channel::PrivateChannel::*)(std::__1::basic _string<char, std::__1::char_traits<char>, std::__1::allocator<char> >), std::__1::tuple<base::internal::UnretainedWrapper<private_channel::PrivateChannel>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<cha r> > >, 0ul, 1ul>(void (private_channel::PrivateChannel::*&&)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >), std::__1::tuple<base::internal::UnretainedWrapper<private_channel::PrivateChannel>, std: :__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>) + 113 19 libchrome_dll.dylib 0x000000010bfc9037 base::internal::Invoker<base::internal::BindState<void (private_channel::PrivateChannel::*)(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >), base::internal::UnretainedWrapper<private_channel::PrivateChannel>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void ()>::RunOnce(base::internal::BindStateBase*) + 87 20 libbase.dylib 0x0000000106149df5 base::OnceCallback<void ()>::Run() && + 117 ``` --- ## Notes ../../base/bind.h:93:3: error: static_assert failed due to requirement 'param_is_forwardable' "Bound argument |i| of type |Arg| cannot be forwarded as |Unwrapped| to the bound functor, which declares it as |Param|."