Error calling index: index of untyped nil?

In a partial template, the following works OK - i.e. .renders as desired:

{{if .Site.Params.Author}}
	{{ $.Scratch.Set "authorname" .Site.Params.Author }}
{{ end }}

{{ $fields := getJSON "data.json" }}

{{ if index $fields ($.Scratch.Get "authorname") }}
	{{ $.Scratch.Set "authorbio" ( index $fields ($.Scratch.Get "authorname") ) }}
{{ else }}
	{{ $.Scratch.Set "authorbio" ( index $fields "unknown" ) }}
{{ end }}

<img src="{{ index ( $.Scratch.Get "authorbio" ) "thumb" }}" /">

But this code:

{{ index ( $.Scratch.Get "authorbio" ) "thumb" }}

Always generates the following error:

ERROR: 2016/09/19 17:02:39 template.go:131: template: theme/partials/author.html:19:14: executing "theme/partials/author.html" at <index ($.Scratch.Get...>: error calling index: index of untyped nil in theme/partials/author.html

Since img src is correctly set to the author-specific contents of thumb each time the partial is called, any idea what might be causing the error? suggests it might be down to Hugo version and/or issue 2303; we’re at 0.16 and 2303 now seems closed.

Many thanks in advance for any help.


It looks like the authorbio isn’t set (as in the Scratch.Set).

Thanks bep. That wasn’t exactly it but pointed us in the right direction. Much appreciated.