(OSI) Error in Add file encoding

Bug #613508 reported by Jim B. Glenn
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
KARL3
Fix Released
Low
Chris Rossi

Bug Description

Reported via error monitor for osi prod

ENTRY
Wed Aug 4 11:47:33 2010
Exception when processing https://karl.soros.org/communities/justice-initiative-for-all/files/advocacy/in
-the-press/2010/add_file.html
Traceback (most recent call last):
  File "/opt/karl/osi/3.20.2-0/src/karl/karl/errorlog.py", line 15, in middleware
    return app(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.zodbconn-0.11-py2.5.egg/repoze/zodbconn/connector.py", line 21
, in __call__
    result = self.next_app(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.retry-0.9.4-py2.5.egg/repoze/retry/__init__.py", line 88, in _
_call__
    app_iter = self.application(environ, replace_start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.tm2-1.0a5-py2.5.egg/repoze/tm/__init__.py", line 23, in __call
__
    result = self.application(environ, save_status_and_headers)
  File "/opt/karl/osi/3.20.2-0/eggs/Paste-1.7.2-py2.5.egg/paste/registry.py", line 350, in __call__
    app_iter = self.application(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.who-1.0.15-py2.5.egg/repoze/who/middleware.py", line 107, in _
_call__
    app_iter = app(environ, wrapper.wrap_start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.browserid-0.3-py2.5.egg/repoze/browserid/middleware.py", line
127, in __call__
    return self.app(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/router.py", line 130, in __call__
    response = view_callable(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1520, in
__call__
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1805, in
attr_view
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1738, in
predicate_wrapper
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1753, in
_secured_view
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1708, in
_rendered_view
    renderer_name)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1562, in
rendered_response
    'context':context, 'request':request})
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/chameleon_zpt.py", line 46, in __
call__
    result = self.template(**system)
 File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
    return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
    return self.cook_and_render(kwargs, utils.emptydict, None, True)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 182, in render
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 379, in r
ender
    return self.render(name, slots=slots, parameters=kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 23, in ren
der_macro
    macro, global_scope=global_scope, slots=slots, parameters=parameters)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 198, in r
ender_macro
    return self.cook_and_render(parameters, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 361, in render
  File "<string>", line 167, in _callback_content
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 1146, in
__call__
    return self.renderer('/formish/form/main.html', {'form':self})
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg.formish-0.3-py2.5.egg/repoze/bfg/formish/__init__.py", lin
e 79, in __call__
    return template(**args)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
  return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
    return self.cook_and_render(kwargs, utils.emptydict, None, True)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 176, in render
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 748, in _
_call__
    return self.form.renderer('/formish/form/fields.html', {'form':self.form,'fields':fields})
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg.formish-0.3-py2.5.egg/repoze/bfg/formish/__init__.py", lin
e 79, in __call__
    return template(**args)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
    return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
    return self.cook_and_render(kwargs, utils.emptydict, None, True)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 34, in render
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 294, in _
_call__
    return fall_back_renderer(renderer, name, widget, vars)
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 115, in f
all_back_renderer
    return renderer('/formish/%s.html'%(name), vars)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg.formish-0.3-py2.5.egg/repoze/bfg/formish/__init__.py", lin
e 79, in __call__
    return template(**args)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
    return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
    return self.cook_and_render(kwargs, utils.emptydict, None, True)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 48, in render
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/codegen.py", line 29, in loo
kup_attr
    return getattr(obj, key)
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 213, in c
lasses
    return _classes(self)
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 83, in _c
lasses
    if str(self.error):
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 244, in e
rror
    val = str(error)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 40: ordinal not in range(1
28)

ENTRY
Wed Aug 4 11:48:16 2010
Exception when processing https://karl.soros.org/communities/justice-initiative-for-all/files/advocacy/in
-the-press/2010/add_file.html
Traceback (most recent call last):
  File "/opt/karl/osi/3.20.2-0/src/karl/karl/errorlog.py", line 15, in middleware
    return app(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.zodbconn-0.11-py2.5.egg/repoze/zodbconn/connector.py", line 21
, in __call__
    result = self.next_app(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.retry-0.9.4-py2.5.egg/repoze/retry/__init__.py", line 88, in _
_call__
  app_iter = self.application(environ, replace_start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.tm2-1.0a5-py2.5.egg/repoze/tm/__init__.py", line 23, in __call
__
    result = self.application(environ, save_status_and_headers)
  File "/opt/karl/osi/3.20.2-0/eggs/Paste-1.7.2-py2.5.egg/paste/registry.py", line 350, in __call__
    app_iter = self.application(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.who-1.0.15-py2.5.egg/repoze/who/middleware.py", line 107, in _
_call__
    app_iter = app(environ, wrapper.wrap_start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.browserid-0.3-py2.5.egg/repoze/browserid/middleware.py", line
127, in __call__
    return self.app(environ, start_response)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/router.py", line 130, in __call__
    response = view_callable(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1520, in
__call__
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1805, in
attr_view
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1738, in
predicate_wrapper
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1753, in
_secured_view
    return view(context, request)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1708, in
_rendered_view
    renderer_name)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/configuration.py", line 1562, in
rendered_response
    'context':context, 'request':request})
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg-1.2-py2.5.egg/repoze/bfg/chameleon_zpt.py", line 46, in __
call__
    result = self.template(**system)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
    return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
    return self.cook_and_render(kwargs, utils.emptydict, None, True)
 File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 182, in render
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 379, in r
ender
    return self.render(name, slots=slots, parameters=kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 23, in ren
der_macro
    macro, global_scope=global_scope, slots=slots, parameters=parameters)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 198, in r
ender_macro
    return self.cook_and_render(parameters, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 361, in render
  File "<string>", line 167, in _callback_content
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 1146, in
__call__
    return self.renderer('/formish/form/main.html', {'form':self})
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg.formish-0.3-py2.5.egg/repoze/bfg/formish/__init__.py", lin
e 79, in __call__
    return template(**args)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
    return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
    return self.cook_and_render(kwargs, utils.emptydict, None, True)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
  return func(econtext, rcontext)
  File "<string>", line 176, in render
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 748, in _
_call__
    return self.form.renderer('/formish/form/fields.html', {'form':self.form,'fields':fields})
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg.formish-0.3-py2.5.egg/repoze/bfg/formish/__init__.py", lin
e 79, in __call__
    return template(**args)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
    return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
    return self.cook_and_render(kwargs, utils.emptydict, None, True)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 34, in render
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 294, in _
_call__
    return fall_back_renderer(renderer, name, widget, vars)
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 115, in f
all_back_renderer
    return renderer('/formish/%s.html'%(name), vars)
  File "/opt/karl/osi/3.20.2-0/eggs/repoze.bfg.formish-0.3-py2.5.egg/repoze/bfg/formish/__init__.py", lin
e 79, in __call__
    return template(**args)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 83, in __
call__
    return self.render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 335, in r
ender
    return super(TemplateFile, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/zpt/template.py", line 18, in ren
der
    return super(PageTemplate, self).render(**kwargs)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 188, in r
ender
  return self.cook_and_render(kwargs, utils.emptydict, None, True)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 315, in c
ook_and_render
    args, slots, macro, global_scope)
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/template.py", line 180, in c
ook_and_render
    return func(econtext, rcontext)
  File "<string>", line 48, in render
  File "/opt/karl/osi/3.20.2-0/eggs/Chameleon-1.1.1-py2.5.egg/chameleon/core/codegen.py", line 29, in loo
kup_attr
    return getattr(obj, key)
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 213, in c
lasses
    return _classes(self)
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 83, in _c
lasses
    if str(self.error):
  File "/opt/karl/osi/3.20.2-0/eggs/formish-0.8.5.1agendaless-py2.5.egg/formish/forms.py", line 244, in e
rror
    val = str(error)
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2019' in position 40: ordinal not in range(1
28)

Revision history for this message
Paul Everitt (paul-agendaless) wrote :

I have a feeling that, since we don't have the file, this one will be hard to handle. Perhaps the best we can do is, make sure a user-visible error gets returned...perhaps a validation error? At least we can then make the user report it and we can find a test case. Moreover, it will stay out of our log. :)

Changed in karl3:
assignee: nobody → Chris Rossi (chris-archimedeanco)
importance: Undecided → Low
milestone: none → m45
Changed in karl3:
status: New → In Progress
Changed in karl3:
status: In Progress → Invalid
Changed in karl3:
status: Invalid → In Progress
Revision history for this message
Chris Rossi (chris-archimedeanco) wrote :

The problem here is that formish is unable to handle unicode in a validation error message. I'm digging in to see whether repoze.bfg.formish should be doing something differently or whether this is a straight up formish bug.

Revision history for this message
Chris Rossi (chris-archimedeanco) wrote :

I have patched formish on my local box to fix this error. I am going to work with Chris M to get this patch into the Agendaless forked version of formish.

Revision history for this message
Chris Rossi (chris-archimedeanco) wrote :

Patched formish egg is in the index.

Changed in karl3:
status: In Progress → Fix Committed
Revision history for this message
JimPGlenn (jpglenn09) wrote :

fixed

Changed in karl3:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.