Parameter for route must match "[^/]++"

Here’s a situation that I’m not understanding about how Drupal routes are instantiated. I’m using this general form, in particular the SponsorbuildDeleteForm.php class in my_module/src/Form/SponsorbuildDeleteForm.

https://medium.com/valuebound/how-to-create-custom-form-with-crud-create…

This module has related fields. A Build has many Sponsors. Create a Build, then create a Sponsor with a foreign key tied to a Build record. OK. But I’m finding that I cannot instantiate the SponsorbuildDeleteForm class because at the end of my submit() function I’ve setRedirect() to a route back to the parent Build records which requires a dynamic parameter. I get this whenever I try to visit the route to this form. 

“Parameter “sponsorbuild” for route “my_module_build.index” must match “[^/]++” (“” given) to generate a corresponding URL.

That suggests that even though I attempt to instantiate this $build parameter in the functions, it seems that Drupal is loading all the needed routes first before running the code and I’m stuck on how to get around that.

Snippet of my routes:

my_module_build.index:
  path: '/sponsorbuild/{sponsorbuild}'
  defaults:
    _controller: 'Drupalmy_moduleControllerMy_moduleController::sponsorbuildIndex'
my_module_sponsor.delete:
  path: '/sponsorbuild/delete/{cid}'
  defaults:
    _form: 'Drupalmy_moduleFormSponsorbuildDeleteForm'

My attempt to generate this class and determine the needed $sponsorbuild parameter.

Class SponsorbuildDeleteForm extends ConfirmFormBase
{
    public function getFormId()
    {
        return 'sponsorbuild_delete_form';
    }
    public $cid;
public function buildForm(array $form, FormStateInterface $form_state, $cid = NULL) {
    $this->id = $cid;
    $conn = Drupal::database();
    $query_build = $conn->query("select buildID from {Builds} where BuildID = :id", array("id" => $this->id));
    $this->sponsorbuild = $query_build->fetchField();
    return parent::buildForm($form, $form_state);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
    $query = Drupal::database();
    $query->delete('SponsorBuilds')
        ->condition('sponsorBuildID',$this->id)
        ->execute();
    drupal_set_message("Succesfully deleted");
    $form_state->setRedirect('my_module_sponsorbuild.index', array('sponsorbuild' => $this->sponsorbuild));
}
I've been searching to see how to get this passed to the setRedirect() call but the empty value in the Exception message suggests that routes get evaluated first, sam
Drupal version: 


Source: https://www.drupal.org/taxonomy/term/4/feed