diff --git a/ydb/public/sdk/cpp/src/client/table/table.cpp b/ydb/public/sdk/cpp/src/client/table/table.cpp index b9983c84a49c..378c0a954395 100644 --- a/ydb/public/sdk/cpp/src/client/table/table.cpp +++ b/ydb/public/sdk/cpp/src/client/table/table.cpp @@ -1365,13 +1365,15 @@ TScanQueryPartIterator::TScanQueryPartIterator( {} TAsyncScanQueryPart TScanQueryPartIterator::ReadNext() { - if (ReaderImpl_->IsFinished()) + if (!ReaderImpl_ || ReaderImpl_->IsFinished()) { + if (!IsSuccess()) + RaiseError(TStringBuilder() << "Attempt to perform read on an unsuccessful result " + << GetIssues().ToString()); RaiseError("Attempt to perform read on invalid or finished stream"); + } return ReaderImpl_->ReadNext(ReaderImpl_); } - - static bool IsSessionStatusRetriable(const TCreateSessionResult& res) { switch (res.GetStatus()) { case EStatus::OVERLOADED: