Constraint failure while using a queue in a task

I use following code in my base sequence as I need this to be used in other sequences.

class base_sequence extends uvm_sequence#(sequence_item);
  function new(string name="base_sequence");;
  endfunction : new

  sequence_item req;

  bit [20:0] me_q[$];
  extern virtual task body();
  extern virtual task drive_logic(bit[20:0] me_q[$]);
endclass : base_sequence
task base_sequence :: drive_logic(bit[20:0] me_q[$]);

  for(int i = 0; i < me_q.size() ; i++) begin
    req = sequence_item::type_id::create("simpleme_req");
      assert(req.randomize() with {
        req.start_UVM == 1;
        req.run_base_UVM == 1;
        req.start_count_UVM == 8'd1;
        req.clear_status_UVM == 0;
        req.final_count_UVM == me_q.size();
        {req.base_march, req.base_march_elem} == me_q[i];
        req.start_count_UVM < req.final_count_UVM; 

I have used base sequence to develop other sequences. This is the body code for one of the sequence

task selfchk_sequence :: body();
  me_q = {21'h100083};

endtask : body

But I am having following error message

Solver failed when solving following set of constraints
bit[30:0] me_q.size() = 31’h1;
rand bit[7:0] req.start_count_UVM; // rand_mode = ON
rand bit[7:0] req.final_count_UVM; // rand_mode = ON
constraint WITH_CONSTRAINT // (from this) (constraint_mode = ON) (cbc_sequence_library.svh:60)
(req.start_count_UVM == 8’h1);
(req.final_count_UVM == me_q.size());
(req.start_count_UVM < req.final_count_UVM);

I came to understand from debug that the solver issue happens when I pass the following line in constraint

req.final_count_UVM == me_q.size();

The error is gone when I gave a sample run commenting it out. How to solve this situation while using a task inside body() method

In reply to bachan21:

Since you didn’t provide a complete example which demonstrates your issue, it can be hard to determine the exact issue.

Looking at the constraints you provided, req.start_count_UVM == 1, and req.final_count_UVM == me_q.size(), which in this instance is == 1. You also have a constraint that req.start_count_UVM < req.final_count_UVM, which conflicts with both items being equal to 1.

In reply to cgales:

That clears the error. I have been focused around queue than considering the other constraint.
Thanks :)